regexpr 0.3.4 → 0.4
raw patch · 2 files changed
+15/−10 lines, 2 files
Files
- Text/RegexPR.hs +11/−7
- regexpr.cabal +4/−3
Text/RegexPR.hs view
@@ -8,6 +8,7 @@ , gmatchRegexPR -- EXPERIMENTAL , subRegexPR , gsubRegexPR+, gsubRegexPRBy , splitRegexPR ) where @@ -43,19 +44,22 @@ Nothing -> src gsubRegexPR :: String -> String -> String -> String-gsubRegexPR reg sub src = gsubRegexPRGen Nothing reg sub ("", src)+gsubRegexPR reg sub src = gsubRegexPRGen Nothing reg (const sub) ("", src) +gsubRegexPRBy :: String -> (String -> String) -> String -> String+gsubRegexPRBy reg subf src = gsubRegexPRGen Nothing reg subf ("", src)+ gsubRegexPRGen ::- Maybe (String, String) -> String -> String -> (String, String) -> String-gsubRegexPRGen pmp reg sub src+ Maybe (String, String) -> String -> (String -> String) -> (String, String) -> String+gsubRegexPRGen pmp reg fsub src = case matchRegexPRVerbose reg src of- Just al@((pre, _, sp@(~(p,x:xs))), _)+ Just al@((pre, match, sp@(~(p,x:xs))), _) -> case (pmp, sp) of (Just (_, ""), _) -> "" _ | Just sp == pmp -> pre ++ [x] ++- gsubRegexPRGen (Just sp) reg sub (x:p, xs)- | otherwise -> pre ++ subBackRef al sub ++- gsubRegexPRGen (Just sp) reg sub sp+ gsubRegexPRGen (Just sp) reg fsub (x:p, xs)+ | otherwise -> pre ++ subBackRef al (fsub match) +++ gsubRegexPRGen (Just sp) reg fsub sp Nothing -> snd src subBackRef ::
regexpr.cabal view
@@ -1,5 +1,5 @@ Name: regexpr-Version: 0.3.4+Version: 0.4 License: LGPL License-File: LICENSE Author: Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -14,8 +14,9 @@ . > matchRegexPR :: String -> Maybe ((String, (String, String)), [(Int, String)]) > gmatchRegexPR :: String -> [((String, (String, String)), [(Int, String)])]- > subRegexPR :: String -> String -> String- > gsubRegexPR :: String -> String -> String+ > subRegexPR :: String -> String -> String -> String+ > gsubRegexPR :: String -> String -> String -> String+ > gsubRegexPRBy :: String -> (String -> String) -> String -> String > splitRegexPR :: String -> String -> [String] . Examples