regex-do-2.2: PCRE wrapper

Safe HaskellNone
LanguageHaskell2010

Text.Regex.Do.Pcre.Replace

Synopsis

Documentation

replace :: (Rx_ a a, ReplaceCase_ r a, Opt_ a) => [ReplaceCase] -> Pattern a -> r a -> Body a -> a Source

dynamic group replace

custom replacer fn returns replacement value. See defaultReplacer

>>> replacer::GroupReplacer String
    replacer = defaultReplacer 1 tweak1
          where tweak1 str1 = case str1 of
                                "101" -> "[сто один]"
                                "3" -> "[three]"
                                otherwise -> trace str1 "?"

Once vs All options

>>> replace [Once,Utf8] (Pattern "\\w=(\\d{1,3})") replacer $ Body "a=101 b=3 12"

"a=[сто один] b=3 12"

>>> replace [All,Utf8] (Pattern "\\w=(\\d{1,3})") replacer $ Body "a=101 b=3 12"

"a=[сто один] b=[three] 12"

static replace for simple (no group) needle

for no-regex ByteString replacement see Text.Regex.Do.Split

>>> replace [Once,Utf8] (Pattern "менее") (Replacement  "более") $ Body "менее менее"

"более менее"

>>> replace [Once,Utf8] (Pattern "^a\\s") (Replacement "A") $ Body "a bc хол.гор."

"Abc хол.гор."