Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP分解全方括号_Php_Regex - Fatal编程技术网

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',.]+\])
见演示