2016-02-25 72 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);