module Regex
( Pattern'
, filterPattern
, parseRegex
) where
import Data.Text (Text)
import Text.Regex.TDFA (defaultExecOpt, defaultCompOpt, RegexLike(..))
import Text.Regex.TDFA.Pattern
import Text.Regex.TDFA.ReadRegex (parseRegex)
import Text.Regex.TDFA.TDFA ( patternToRegex )
import Text.Regex.TDFA.Text
type Pattern' = (Pattern, (GroupIndex, DoPa))
filterPattern :: Pattern' -> [Text] -> [Text]
filterPattern pattern strings = filter matchPattern strings
where
regex :: Regex
regex = patternToRegex pattern defaultCompOpt defaultExecOpt
matchPattern :: Text -> Bool
matchPattern x = matchTest regex x