【问题标题】:How To Regex Search and Replace array_key_exists with isset?如何使用 isset 正则表达式搜索和替换 array_key_exists?
【发布时间】:2014-03-12 12:35:21
【问题描述】:

用更有效的isset()array_key_exists() 的所有实例进行正则表达式搜索和替换的最佳方法是什么?请不要引用 Donald 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)

【问题讨论】:

    标签: php regex netbeans isset array-key-exists


    【解决方案1】:

    不是最优雅的解决方案,但添加到您当前的正则表达式中,我们可以找到两种类型的搜索条件。

    array_key_exists\s*(\s*'|$['|\S]\s*,([^)]*))

    【讨论】:

    • 这对我不起作用。我在 netbeans 引擎和其他一些正则表达式测试人员中尝试过。
    【解决方案2】:

    我能做的最好的事情是运行第二次搜索和替换以覆盖对两个参数都使用变量的实例:

    array_key_exists($my_key,$my_array)

    搜索和替换2:

    • 搜索:

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

    • 替换为:

      isset($2[$1])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-14
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2010-11-25
      相关资源
      最近更新 更多