如何爆炸方括号,然后用一些文字替换它们?
我尝试了以下代码,但它似乎只识别前两个:
正则表达式代码:
/(\[[\w\s]+\])/g
任何人都可以建议在正则表达式代码中需要更改哪些内容?
$data = "[Foo Bar],[Suganthan],['Test1',1,5.09,12.50, 7.41]";
but it only finds: [Foo Bar],[Suganthan]
preg_replace('/(\[[\w\s]+\])/', 'replaced', $data);
答案 0 :(得分:5)
那是因为你限制了角色类中的匹配字符。 [\w\s]+
仅匹配所有字母数字和空格以及下划线。
使用[^]]+
表示匹配 ]
答案 1 :(得分:3)
/(\[.*?\])/g
你可以试试这个。你的正则表达式不匹配['Test1',1,5.09,12.50, 7.41]
这个不匹配,因为它,
和'
没有被\w\s
或者只是使用
(\[[\w\s',.]+\])
参见演示。
答案 2 :(得分:2)
您可以使用此正则表达式捕获所有方括号内容:
(\[[^]]+\])
<强>代码:强>
$data = preg_replace('/\[[^]]+\]/', 'replaced', $data);
如果您只想查找[
和]
内的内容,请使用 lookarounds ,如此正则表达式:
(?<=\[)[^]]+(?=\])
并使用代码:
$data = preg_replace('/(?<=\[)[^]]+(?=\])/', 'replaced', $data);