regex-applicative
regex-applicative copied to clipboard
`replace` seems to be greedy even with `few`
> replace ("x" <$ string "/*" <* few anySym <* string "*/") "1 /* foo */ 2 /* bar */ 3"
"1 x 3"
Whereas I would expect 1 x 2 x 3 as a result.
Replacing findLongestInfix by findFirstInfix in replace definition seems to fix this case but I am not sure if this is a proper solution.
Using regex-applicative-0.3.4
I think you are correct. Would you care to prepare a PR?
Just in case someone is relying on the old behavior, let's introduce the corrected version under a new name (say, replace2) and add a DEPRECATED pragma on the old one. And please add the tests for both greedy and non-greedy regexes. (Perhaps even add doctests?)
Thanks!