PHP分解全方括号
如何分解方括号,然后用一些文本替换它们 我尝试了以下代码,但它似乎只识别前两个: 正则表达式代码:PHP分解全方括号,php,regex,Php,Regex,如何分解方括号,然后用一些文本替换它们 我尝试了以下代码,但它似乎只识别前两个: 正则表达式代码: /(\[[\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);
/(\[[\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);
这是因为您限制了character类中的可匹配字符<代码>[\w\s]+仅匹配所有字母数字、空格和下划线 使用
[^]+
这意味着匹配除
]
之外的任何内容,这是因为您限制了character类中的可匹配字符<代码>[\w\s]+仅匹配所有字母数字、空格和下划线
使用[^]+
这意味着匹配除
]
之外的任何内容。您可以使用此正则表达式捕获所有方括号内容:
(\[[^]]+\])
代码:
$data = preg_replace('/\[[^]]+\]/', 'replaced', $data);
如果您只想从[
和]
中查找内容,请使用lookarounds,如下正则表达式所示:
(?<=\[)[^]]+(?=\])
(?您可以使用此正则表达式捕获所有方括号内容:
(\[[^]]+\])
代码:
$data = preg_replace('/\[[^]]+\]/', 'replaced', $data);
如果您只想从[
和]
中查找内容,请使用lookarounds,如下正则表达式所示:
(?<=\[)[^]]+(?=\])
(?
您可以尝试此操作。您的正则表达式将不匹配['Test1',1,5.09,12.50,7.41]
这将不匹配,因为它有、
和'
,而\w\s
或者干脆用
(\[[\w\s',.]+\])
见演示
您可以尝试此操作。您的正则表达式将不匹配['Test1',1,5.09,12.50,7.41]
这将不匹配,因为它有、
和'
,而\w\s
或者干脆用
(\[[\w\s',.]+\])
见演示