Php preg_match_所有确保独特/独特的结果
我使用以下代码匹配以“$”开头的脚本中的所有变量,但是我希望结果不包含重复项,即不同/唯一:Php preg_match_所有确保独特/独特的结果,php,preg-match-all,Php,Preg Match All,我使用以下代码匹配以“$”开头的脚本中的所有变量,但是我希望结果不包含重复项,即不同/唯一: preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables); 有什么建议吗?用于从输出阵列中删除重复项: preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables); $variables = array_unique($variables[0]); 但我希望您不要试图用它来解析PHP。用于获取给定PHP
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
有什么建议吗?用于从输出阵列中删除重复项:
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
$variables = array_unique($variables[0]);
但我希望您不要试图用它来解析PHP。用于获取给定PHP代码的标记。用于从输出数组中删除重复项:
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
$variables = array_unique($variables[0]);
但我希望您不要试图用它来解析PHP。用于获取给定PHP代码的令牌。请尝试以下代码:
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
$variables = array_unique($variables);
请尝试以下代码:
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
$variables = array_unique($variables);
不要对正则表达式这样做。在$variables中收集它们之后,只需使用常规编程逻辑/操作对它们进行过滤。例如,如Gumbo所述,使用array_unique 此外,在这些情况下,您的正则表达式将做什么:
// this is $not a var
foo('and this $var should also not appear!');
/* and what about $this one? */
这三个变量$not、$var和$this都不是变量,但将由您的正则表达式匹配。不要对正则表达式进行匹配。在$variables中收集它们之后,只需使用常规编程逻辑/操作对它们进行过滤。例如,如Gumbo所述,使用array_unique 此外,在这些情况下,您的正则表达式将做什么:
// this is $not a var
foo('and this $var should also not appear!');
/* and what about $this one? */
所有三个变量$not、$var和$this都不是变量,但将由您的正则表达式匹配。我同意这是最简单的解决方案,尽管我很好奇正则表达式中是否有这样做的方法,所以不要将此O1方法变为ON…@icco:我不确定array_unique是如何实现的。但我猜他们在使用哈希表进行查找。这意味着O1.Cheers,我确实看到了php函数,但没有注意到我需要[0],因为结果集很大。啊!我用它来混淆JS,因为google闭包编译器不允许在高级模式下使用JS中的一些编码实践。也就是在静态方法中使用“this”。@icco,当然你可以在regex中使用它,但是向前看会让它在性能方面变成噩梦。这应该可以做到:\$[a-zA-Z0-9]+*\1.另外,变量在$variables数组中的显示顺序是相反的。我同意这是最简单的解决方案,尽管我很好奇在正则表达式中是否有这样做的方法,所以不要将此O1方法变为ON…@icco:我不确定array_unique是如何实现的。但我猜他们在使用哈希表进行查找。这意味着O1.Cheers,我确实看到了php函数,但没有注意到我需要[0],因为结果集很大。啊!我用它来混淆JS,因为google闭包编译器不允许在高级模式下使用JS中的一些编码实践。也就是在静态方法中使用“this”。@icco,当然你可以在regex中使用它,但是向前看会让它在性能方面变成噩梦。这应该可以做到:\$[a-zA-Z0-9]+*\1.另外,变量在$variables数组中以相反的顺序出现。谢谢你的回复,但这在我的例子中不是问题。我的代码用于在打包JS之前对其进行模糊处理,其中包含注释,并且字符串中没有任何$的实例。好的,很高兴听到这个消息,然后您可以安全地使用preg_match_all。我认为值得一提以防万一。谢谢你的回复,但这不是我的问题。我的代码用于在打包JS之前对其进行模糊处理,其中包含注释,并且字符串中没有任何$的实例。好的,很高兴听到这个消息,然后您可以安全地使用preg_match_all。我认为值得一提,以防万一。