我想从PhpStorm内部运行正则表达式搜索(可能是任何文件管理器,Double / Total Commander也可以处理正则表达式搜索)以匹配单引号内的php变量,因此字符串插值赢了“t = t对他们的工作,例如'$var'
。
文件的内容如下:
$var = 'Hello world!';
echo 'Lorem ipsum $var dolor sit amet'; // Match this.
echo "Lorem ipsum 'dolor sit amet $var consectetur' adipiscing elit"; // But not this.
echo "Lorem ipsum 'dolor sit amet \$var consectetur' adipiscing elit"; // Or this.
我希望正则表达式搜索匹配第一个语句,但不是第二个或第三个语句。
我已经尝试了'[\w ]+\$[\w]+[\w ]+'
,但这不起作用,因为它匹配所有语句,无论双引号或转义美元符号。 (regex101)。
这只是一个常规的正则表达式搜索,我想在我的仓库中运行以找到错误的代码。
我可以使用什么正则表达式?
(我不需要在引号之间添加任何文本,只需在单引号之间的php变量进行转义。)
答案 0 :(得分:1)
您需要的是消极的外观。特别是负面的先行,因为在PHP中你不允许使用无固定长度的lookbehind:
'[\w ]+\$[\w]+[\w ]+'(?![\w$ ']*")
(?![\w$ ']*")
表示您要匹配的字符串不得跟"
后面,中间有任意数量的字符(您希望在字符串中允许的字符)。