| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Regexdo.Pcre.Replace
- data ReplaceCase
- class Replace_cl a where
- replace :: Mr a => [ReplaceCase] -> (Needle a, Replacement a) -> Haystack a -> a
- replaceGroup :: Mr a => [ReplaceCase] -> (Needle a, GroupReplacer a) -> Haystack a -> a
- replaceMatch :: Replace_cl' a => (MatchOffset, MatchLength) -> (a, a) -> a
- defaultReplacer :: (Replace_cl' a, Extract a) => Int -> (a -> a) -> GroupReplacer a
- type Mr a = (Match_cl Regex a, Replace_cl' a, Match_opt a)
Documentation
data ReplaceCase Source
Instances
class Replace_cl a where Source
dynamic group replace
custom replacer fn returns replacement value
>>>replacer::GroupReplacer Stringreplacer = defaultReplacer 3 tweak1 where tweak1 str1 = case str1 of "101" -> "[A]" "3" -> "[Be]"
>>>replaceGroup [Once] (Needle "(\\w)(=)(\\d{1,3})", replacer) $ Haystack "a=101 b=3 12"
"a=[A] b=3 12"
>>>replaceGroup [All] (Needle "(\\w)(=)(\\d{1,3})", replacer) $ Haystack "a=101 b=3 12"
"a=[A] b=[Be] 12"
static replace for simple (no group) needle
>>>replace [Once,Utf8] (Needle "менее", Replacement "более") (Haystack "менее менее")
"более менее"
>>>replace [Once,Utf8] (Needle "^a\\s", Replacement "A") (Haystack "a bc хол.гор.")
"Abc хол.гор."
Minimal complete definition
Nothing
Methods
replace :: Mr a => [ReplaceCase] -> (Needle a, Replacement a) -> Haystack a -> a Source
replaceGroup :: Mr a => [ReplaceCase] -> (Needle a, GroupReplacer a) -> Haystack a -> a Source
Instances
Arguments
| :: Replace_cl' a | |
| => (MatchOffset, MatchLength) | |
| -> (a, a) | (new val, acc passed to |
| -> a | new acc |
use in your custom GroupReplacer passed to replaceGroup
see example replacer above or use defaultReplacer
Arguments
| :: (Replace_cl' a, Extract a) | |
| => Int | idx of match within a group |
| -> (a -> a) | (group match -> replacement) tweak |
| -> GroupReplacer a |
replace with a tweak to specified (by idx) group match
see defaultReplacer source for hints: how to write custom replacer