PHP如何移除括号包裹内容及其右侧所有字符?
移除括号内容及右侧所有字符的解决方案
我明白你现在的需求啦——不仅要删掉字符串里括号包裹的内容,还要把括号右侧的所有字符一并移除,比如输入Hey (Jude) Hello时,期望得到Hey,但你之前的正则只去掉了括号内的部分,所以输出变成了Hey Hello。
其实只需要调整正则表达式,让它匹配从左括号开始到字符串结尾的所有内容,再替换为空就可以了,具体代码如下:
$string = "Hey (Jude) Hello"; echo preg_replace("/\([^)]+\).*/", "", $string);
给你拆解下这个正则的逻辑:
\(:转义匹配左括号(因为括号在正则里是特殊语法,必须转义才能匹配字面量)[^)]+:匹配除了右括号之外的任意一个或多个字符,精准定位括号内的内容\):转义匹配右括号.*:匹配右括号之后的所有字符(.*表示任意数量的任意字符,直到字符串结束)
这样整个正则会把(Jude) Hello这部分全部匹配到,替换为空后就得到了你想要的Hey。
内容的提问来源于stack exchange,提问作者jerome
相关产品推荐
相关产品推荐

