Safe Haskell | None |
---|---|
Language | Haskell2010 |
- 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
class Replace_cl a where Source
dynamic group replace
custom replacer fn returns replacement value
>>>
replacer::GroupReplacer String
replacer = 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 хол.гор."
Nothing
replace :: Mr a => [ReplaceCase] -> (Needle a, Replacement a) -> Haystack a -> a Source
replaceGroup :: Mr a => [ReplaceCase] -> (Needle a, GroupReplacer a) -> Haystack a -> a Source
:: 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
:: (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