So, Notepad++ got updated to v6.0. One of their new features is PCRE (Perl Compatible Regular Expressions)
.
I tried to use this new feature to find and replace things in a file. I tried the regular expression:
{\$([a-zA-Z_]*)}
and it yelled at me, saying "Invalid regular expression".
I tested this regex in other programs (like my main IDE, Geany), and it worked fine.
Why does this not work in Notepad++ 6.0?
Best Answer
You have to escape the
{}
like so:I assume Geany and rubular.com don't use PCRE (or they use it differently). Please note that
{}
are usually used to denote quantifiers.Without having checked the source, I can only assume that Notepad++ tries to be too smart before passing the regular expression to the PCRE library. If I run the following code in PHP:
It prints
1
right away. No need to escape anything.Sorry that I can't explain it :(