如何使用Perl删除括号内的文本?例如:$ str ="这是一个(额外的东西)字符串."
to $ str ="这是一个字符串."
我目前正在使用它,但它不起作用:$ str = ~s /(([^]] +))//;
谢谢!
你需要逃避括号,例如:
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)
最后一个表达式适用于字符串like aaa (foo(b,a,2*(3+4)) b) (c (c) c) ddd (x).,give aaa ddd..
| 归档时间: |
|
| 查看次数: |
5730 次 |
| 最近记录: |