| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Text.Regex.Do.Pcre.Replace
- data ReplaceCase
- class Replace r a where
- replace :: [ReplaceCase] -> Pattern a -> r a -> Body a -> a
- replaceMatch :: Replace_ a => PosLen -> (a, ReplaceAcc a) -> ReplaceAcc a
- defaultReplacer :: (Replace_ a, Extract a) => Int -> (a -> a) -> GroupReplacer a
- getGroup :: Extract a => ReplaceAcc a -> MatchArray -> Int -> Maybe a
- type Mr_ a out = (Match a a out, Rx_ a a, Replace_ a, Opt_ a)
Documentation
data ReplaceCase Source
Instances
class Replace r a where Source
dynamic group replace
custom replacer fn returns replacement value
>>>replacer::GroupReplacer Stringreplacer = defaultReplacer 1 tweak1 where tweak1 str1 = case str1 of "101" -> "[сто один]" "3" -> "[three]" otherwise -> trace str1 "?"
>>>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 хол.гор."
Methods
replace :: [ReplaceCase] -> Pattern a -> r a -> Body a -> a Source
Arguments
| :: Replace_ a | |
| => PosLen | replaceable, unadjusted |
| -> (a, ReplaceAcc a) | (new val, acc passed to |
| -> ReplaceAcc a | new acc |
call from your custom GroupReplacer passed to replaceGroup
see defaultReplacer source for use example
Arguments
| :: (Replace_ a, Extract a) | |
| => Int | group idx |
| -> (a -> a) | (group match -> replacement) tweak |
| -> GroupReplacer a |
Replaces specified (by idx) group match with tweaked value. Works for one common simple use case
GroupReplacer can be used with complicated regex
another custom dynamic replacer could e.g.
inspect all group matches before looking up a replacement.
getGroup :: Extract a => ReplaceAcc a -> MatchArray -> Int -> Maybe a Source
get group content safely
see defaultReplacer source for use example