问题Remove Text Between Parentheses PHP有效,但只能使用“完整”括号(开始和结束):
preg_replace('/\([^)]+\)/', '', $myString);但我也需要它与未闭合的括号一起工作。例如:
$string1 = 'Something (unimportant stuff'; //Becomes 'Something '
$string2 = '(unimportant stuff'; //Becomes '' (empty string)
$string3 = 'Something (bad) happens'; //Becomes 'Something happens'
$string4 = 'Something)'; //Stays the same我真的不在乎我是否必须通过两次通过(使用原始答案和新答案)……
发布于 2013-05-03 23:03:33
您可以将最后的闭括号设置为可选的:
preg_replace('/\([^)]+\)?/', '', $myString);
^发布于 2013-05-03 23:04:13
如果它已经不起作用了呢?如果它只是未关闭的,您可以搜索关闭括号或行尾?
preg_replace('/\([^)]+(\)|$)/', '', $myString);发布于 2013-05-03 23:12:10
用这个正则表达式/^[^(]*\)|\([^)]*$|\([^()]*\)/试试吧
这将匹配没有左大括号但有右大括号的短语,有左大括号但没有右大括号的短语,以及有左大括号和右大括号的短语
https://stackoverflow.com/questions/16361957
复制相似问题