什么是最好的方法来做一个正则表达式搜索和替换的所有示例array_key_exists()
与更有效的isset()
?请,没有唐纳德Knuth报价有关优化和是的,我知道的differences between the two functions。
这是我目前在Netbeans搜索和替换中使用的内容:
- 搜索:
array_key_exists\s*\(\s*'([^']*)'\s*,([^)]*)\)
- 改为:
isset($2['$1'])
它工作得很好,更改了以下内容:
array_key_exists('my_key',$my_array)
至
isset($my_array['my_key'])
但不会选择这样的示例:
array_key_exists($my_key,$my_array)
3条答案
按热度按时间xuo3flqw1#
这不是最好的解决方案,但是添加到您当前的正则表达式中,我们可以找到这两种类型的搜索条件。
数组键存在\s*(\s*'|$['|* ,([^)]*))
zzwlnbp82#
我能做的最好的事情就是运行第二次搜索并替换,以覆盖对两个参数都使用变量的示例:
array_key_exists($my_key,$my_array)
搜索和替换2:
array_key_exists\s*\(\s*(\$[^,]*)\s*,([^)]*)\)
个isset($2[$1])
5gfr0r5j3#
如果您在升级PHP版本时需要一个WIDER范围,而不仅仅是上面的用例:
没有清理,但它应该捕捉每一个示例,我可以想到的。
搜寻:
替换: