PHP:删除括号代码的正则表达式

PHP:删除括号代码的正则表达式,php,regex,preg-replace,Php,Regex,Preg Replace,我正在尝试创建一个函数来删除所有括号代码,但它似乎不起作用 function anti_code($content) { # find the matches and then remove them $output = preg_replace("/\[a-z\s+\]/is", "", $content); # return the result return $output; } 我希望在输出中删除这些代码 Agro[space]terrorism Ag

我正在尝试创建一个函数来删除所有括号代码,但它似乎不起作用

function anti_code($content)
{
    # find the matches and then remove them
    $output = preg_replace("/\[a-z\s+\]/is", "", $content);

    # return the result
    return $output;
}
我希望在输出中删除这些代码

Agro[space]terrorism
Agro[en space]terrorism
这样我就可以

Agroterrorism

我的正则表达式一定有问题!请让我知道。谢谢。

您转义了
[]
,但没有添加第二组未转义的
[]
来指定字符类。此外,如果在正则表达式中未使用
元字符,则不需要使用
s

试试这个:

/\[[a-z\s]+\]/i
如果您不关心方括号之间的内容,只想删除其中包含的所有内容,则可以执行以下操作:

/\[[^]]+\]/i

您转义了
[]
,但没有添加第二组未转义的
[]
来指定字符类。此外,如果在正则表达式中未使用
元字符,则不需要使用
s

试试这个:

/\[[a-z\s]+\]/i
如果您不关心方括号之间的内容,只想删除其中包含的所有内容,则可以执行以下操作:

/\[[^]]+\]/i

尝试
\[[a-z\s]+\]
它将捕获方括号和所有内容

尝试
\[[a-z\s]+\]
它将捕获方括号和所有内容

@ircmaxell:我正在尝试对抗我现在实际遇到的持续连接重置错误,显示我的wi-fi路由器谁是老大。@ircmaxell:我正在尝试对抗我现在实际遇到的不断的连接重置错误,并显示我的wi-fi路由器谁是老大。如果你试图将其与
foo[bar]baz[biz buz]
匹配,会发生什么?将其取消冻结
\[.\\]
或直接使用
preg\u替换(“/\\[(?>[^\]]*)\]\]/”,“$content);
可读性较低,但仅此一次的子模式使其更高效如果您尝试将其与
foo[bar]baz[biz buz]
匹配,则会发生什么情况?使其不灵活
\[.\\]
或只需使用
preg\u replace(“/\[(?>[^\]]\]\]\]\]/”,$content)
可读性较差,但仅使用一次的子模式使其更有效。在单引号的情况下,切勿使用双引号字符串,尤其是在正则表达式模式中。在单引号的情况下,切勿使用双引号字符串。在正则表达式模式中,尤其如此