netbeans 如何用正则表达式搜索并将array_key_exists替换为isset?

htrmnn0y  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(155)

什么是最好的方法来做一个正则表达式搜索和替换的所有示例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)
xuo3flqw

xuo3flqw1#

这不是最好的解决方案,但是添加到您当前的正则表达式中,我们可以找到这两种类型的搜索条件。
数组键存在\s*(\s*'|$['|* ,([^)]*))

zzwlnbp8

zzwlnbp82#

我能做的最好的事情就是运行第二次搜索并替换,以覆盖对两个参数都使用变量的示例:
array_key_exists($my_key,$my_array)
搜索和替换2:

  • 搜索:

array_key_exists\s*\(\s*(\$[^,]*)\s*,([^)]*)\)

  • 改为:

isset($2[$1])

5gfr0r5j

5gfr0r5j3#

如果您在升级PHP版本时需要一个WIDER范围,而不仅仅是上面的用例:
没有清理,但它应该捕捉每一个示例,我可以想到的。
搜寻:

array_key_exists\s*\(\s*([^,]*)\s*,\s*((\(\w+\))?[a-z0-9_$'"\{\}\[\]\-\>\:]*(\(\))*[a-z0-9$_\.\{\}\'\"\[\]\-\>\:]*)\)

替换:

isset($2[$1])

相关问题