perl正则表达式取出括在括号中的文本

Pau*_*aul 0 regex perl

如何使用Perl删除括号内的文本?例如:$ str ="这是一个(额外的东西)字符串."
to $ str ="这是一个字符串."

我目前正在使用它,但它不起作用:$ str = ~s /(([^]] +))//;

谢谢!

Qta*_*tax 7

你需要逃避括号,例如:

s/\([^)]*\)//g
Run Code Online (Sandbox Code Playgroud)

按流行需求更新:

要删除空格,您只需删除括号前的空格即可.这在大多数情况下都有效:

s/\s*\([^)]*\)//g
Run Code Online (Sandbox Code Playgroud)

要处理嵌套的括号,您可以使用递归模式,如下所示:

s/\s*\((?:[^()]+|(?R))*\)//g
Run Code Online (Sandbox Code Playgroud)

你可以(?R)perlre中阅读等等.

最后一个表达式适用于字符串like aaa (foo(b,a,2*(3+4)) b) (c (c) c) ddd (x).,give aaa ddd..