- October 13, 2011 at 10:57 pm #9730
If you have a line with the text:
and do a regex Find for
and replace with
you have to do Replace All twice. The first time will result in
The second pass changes “,3,” to “,03,”.
Why is the “,3,” not done in the first pass ?
Is this a bug ?October 14, 2011 at 8:01 am #9733
Me thinks that is how the regex engine works?
You search “,d,” on an string like “10,6,3,12”
The regex will match “,6,”
then it continuous at the very next sign from the rest of the string which is now “3,12”.
As you see your search pattern will not match on “3,12” because there is no “,d,” anymore.
The trick is to not match the comas itself as you do but only take an look if they are present.
That can be fine done by using positive lookbehind and lookahead which EmEditor supports (thanks Yutaka).
For more info about that feature see e.g.: http://www.regular-expressions.info/lookaround.html
search pattern: “oogl”
positive lookbehind if there is an “G” right before your search pattern: (?<=G)
positive lookahead if there is an “e” just after your search pattern: (?=e)
So RegEx search for:
Example for your issue with commas:
.October 15, 2011 at 12:03 am #9734
Thanks for the detailed answer Stefan!
Didn’t know the characters were consumed by default, but lookbehind and lookahead does indeed solve the problem.
Thanks again! 🙂
You must be logged in to reply to this topic.