所以,Notepad++已更新至v6.0. 他们的新功能之一是PCRE (Perl Compatible Regular Expressions)
。
我尝试使用这个新功能来查找和替换文件中的内容。我尝试了正则表达式:
{\$([a-zA-Z_]*)}
它对我大喊:“无效的正则表达式”。
我在其他程序中测试了这个正则表达式(比如我的主要 IDE,吉尼),并且运行良好。
为什么这在 Notepad++ 6.0 中不起作用?
答案1
你必须{}
像这样逃避:
\{\$([a-zA-Z_]*)\}
我假设 Geany 和 rubular.com 不使用 PCRE(或者他们使用不同)。请注意,{}
通常用于表示量词。
在没有检查源代码的情况下,我只能假设 Notepad++ 在将正则表达式传递给 PCRE 库之前会显得太聪明。如果我在 PHP 中运行以下代码:
echo preg_match( '{\$([a-zA-Z_]*)}', '{$something}' );
它会1
立即打印。无需转义任何内容。
抱歉我不能解释它 :(