首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PHP中用正则表达式清除括号之间的文本?

如何在PHP中用正则表达式清除括号之间的文本?
EN

Stack Overflow用户
提问于 2013-05-03 23:00:28
回答 3查看 231关注 0票数 2

问题Remove Text Between Parentheses PHP有效,但只能使用“完整”括号(开始和结束):

代码语言:javascript
复制
preg_replace('/\([^)]+\)/', '', $myString);

但我也需要它与未闭合的括号一起工作。例如:

代码语言:javascript
复制
$string1 = 'Something (unimportant stuff'; //Becomes 'Something '
$string2 = '(unimportant stuff'; //Becomes '' (empty string)
$string3 = 'Something (bad) happens'; //Becomes 'Something  happens'
$string4 = 'Something)'; //Stays the same

我真的不在乎我是否必须通过两次通过(使用原始答案和新答案)……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-03 23:03:33

您可以将最后的闭括号设置为可选的:

代码语言:javascript
复制
preg_replace('/\([^)]+\)?/', '', $myString);
                        ^
票数 4
EN

Stack Overflow用户

发布于 2013-05-03 23:04:13

如果它已经不起作用了呢?如果它只是未关闭的,您可以搜索关闭括号或行尾?

代码语言:javascript
复制
preg_replace('/\([^)]+(\)|$)/', '', $myString);
票数 1
EN

Stack Overflow用户

发布于 2013-05-03 23:12:10

用这个正则表达式/^[^(]*\)|\([^)]*$|\([^()]*\)/试试吧

这将匹配没有左大括号但有右大括号的短语,有左大括号但没有右大括号的短语,以及有左大括号和右大括号的短语

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16361957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档