PHP删除[和]括号之间的文本

Sam*_*res 4 php regex string

我需要删除[和]括号(以及括号)之间包含的文本。

例如:

你好,你好吗]

必须成为:

你好,

并且,像这样的字符串:

你好,你好吗

必须成为:

你好,你

有规则表达可以做到这一点吗?

Max*_*ant 5

您只需要删除函数之间[]的所有内容preg_replace

$a = 'hello, [how][are] you';

echo preg_replace('#\s*\[.+\]\s*#U', ' ', $a); // hello, you
Run Code Online (Sandbox Code Playgroud)

正则表达式捕获前后的每个空格,并用单个空格替换。

要小心,[]保留在正则表达式的字符,你需要逃脱他们\。如果您想保持写入[]字符串的可能性(之间没有任何区别),则可以转换.*in .+