Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将匹配PHP变量但不匹配对象和函数调用的正则表达式_Php_Regex - Fatal编程技术网

将匹配PHP变量但不匹配对象和函数调用的正则表达式

将匹配PHP变量但不匹配对象和函数调用的正则表达式,php,regex,Php,Regex,我正在开发一个正则表达式,它将匹配 $foo $bar $baz 但不是 $foo->bar 到目前为止,我已经 /\$([a-zA-Z_][a-zA-Z_0-9]*(?!->))/ 不幸的是,此模式与$fo匹配。请参阅。使用所有格量词,该量词将不允许回溯到[a-zA-Z_0-9]子模式: \$([a-zA-Z_][a-zA-Z_0-9]*+(?!->)) ^^ 或者甚至(如果您没有使用/u修饰语或(*UCP)动词,则作为

我正在开发一个正则表达式,它将匹配

$foo $bar $baz
但不是

$foo->bar
到目前为止,我已经

/\$([a-zA-Z_][a-zA-Z_0-9]*(?!->))/

不幸的是,此模式与
$fo
匹配。请参阅。

使用所有格量词,该量词将不允许回溯到
[a-zA-Z_0-9]
子模式:

\$([a-zA-Z_][a-zA-Z_0-9]*+(?!->))
                        ^^
或者甚至(如果您没有使用
/u
修饰语或
(*UCP)
动词,则作为
[a-zA-Z_0-9]
=
\w
):

问题是,当反向前瞻失败时,回溯开始发挥作用,并且由于
*
允许回溯到量化子模式中,因此会找到未跟在
->
后面的
o
,并返回匹配项

请参阅,特别注意回溯步骤:


@Downvoter:如果有任何不清楚的地方,请随时发表评论。
\$([a-zA-Z_]\w*(?!->))