2016-02-25 70 views
1

我已经继承了几千行代码,每个数组键字符串值都缺少引号,例如[input]应该改为['input'],否则我的PHP(正确)在调试时抛出合适的hissy。在搜索和替换中的正则表达式

我想正则表达式搜索和替换,我能找到的部分确定,例如\[([a-z])\w+\]会发现[input]而忽略['preview']

但我不能工作,如何做替换。

有人可以帮忙吗?

回答

2

你的意思是说像this

\[([^'\]]+)\] 

['\1'] 

取代,如果它看起来不错,你可以使用code generator左侧看到PHP正则表达式的代码。

+0

你可以给一个男人一条鱼,他会吃一天,你向他展示regx101.com,他会吃生活中的正则表达式。 非常感谢。 –

2

您可以使用这样的正则表达式:

\[(\w+)\] 

与替换

['$1'] 

Working demo

PHP代码

$re = "/\\[(\\w+)\\]/"; 
$str = "[key]\n[key2]\n[key_asdf]"; 
$subst = "['$1']"; 

$result = preg_replace($re, $subst, $str);