provide some regex-posix-based utilities that perform better than regexpr
This commit is contained in:
parent
b780badd07
commit
3b5c0bc4a1
@ -42,6 +42,7 @@ import System.FilePath((</>), isRelative)
|
|||||||
import Test.HUnit
|
import Test.HUnit
|
||||||
import Text.ParserCombinators.Parsec
|
import Text.ParserCombinators.Parsec
|
||||||
import Text.Printf
|
import Text.Printf
|
||||||
|
import Text.Regex
|
||||||
import Text.RegexPR
|
import Text.RegexPR
|
||||||
-- import qualified Data.Map as Map
|
-- import qualified Data.Map as Map
|
||||||
--
|
--
|
||||||
@ -202,6 +203,7 @@ difforzero :: (Num a, Ord a) => a -> a -> a
|
|||||||
difforzero a b = maximum [(a - b), 0]
|
difforzero a b = maximum [(a - b), 0]
|
||||||
|
|
||||||
-- regexps
|
-- regexps
|
||||||
|
-- Note many of these will die on malformed regexps.
|
||||||
|
|
||||||
-- regexMatch :: String -> String -> MatchFun Maybe
|
-- regexMatch :: String -> String -> MatchFun Maybe
|
||||||
regexMatch r s = matchRegexPR r s
|
regexMatch r s = matchRegexPR r s
|
||||||
@ -232,6 +234,13 @@ regexToCaseInsensitive r = "(?i)"++ r
|
|||||||
regexSplit :: String -> String -> [String]
|
regexSplit :: String -> String -> [String]
|
||||||
regexSplit = splitRegexPR
|
regexSplit = splitRegexPR
|
||||||
|
|
||||||
|
-- regex-compat (regex-posix) functions that perform better than regexpr.
|
||||||
|
regexMatchesRegexCompat :: String -> String -> Bool
|
||||||
|
regexMatchesRegexCompat r = isJust . matchRegex (mkRegex r)
|
||||||
|
|
||||||
|
regexMatchesCIRegexCompat :: String -> String -> Bool
|
||||||
|
regexMatchesCIRegexCompat r = isJust . matchRegex (mkRegexWithOpts r True False)
|
||||||
|
|
||||||
-- lists
|
-- lists
|
||||||
|
|
||||||
splitAtElement :: Eq a => a -> [a] -> [[a]]
|
splitAtElement :: Eq a => a -> [a] -> [[a]]
|
||||||
|
|||||||
@ -66,6 +66,7 @@ library
|
|||||||
,old-locale
|
,old-locale
|
||||||
,old-time
|
,old-time
|
||||||
,parsec
|
,parsec
|
||||||
|
,regex-compat == 0.95.*
|
||||||
,regexpr >= 0.5.1
|
,regexpr >= 0.5.1
|
||||||
,safe >= 0.2
|
,safe >= 0.2
|
||||||
,split >= 0.1 && < 0.3
|
,split >= 0.1 && < 0.3
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user