3 回答
![?](http://img1.sycdn.imooc.com/533e4d660001312002000200-100-100.jpg)
TA贡献1796条经验 获得超10个赞
$string = "ABC (Test1)";
echo preg_replace("/\([^)]+\)/","",$string); // 'ABC '
preg_replace是基于Perl的正则表达式替换例程。该脚本的作用是匹配所有出现的右括号,后跟任意数量的字符而不是右括号,然后再次跟右括号,然后将其删除:
正则表达式细分:
/ - opening delimiter (necessary for regular expressions, can be any character that doesn't appear in the regular expression
\( - Match an opening parenthesis
[^)]+ - Match 1 or more character that is not a closing parenthesis
\) - Match a closing parenthesis
/ - Closing delimiter
![?](http://img1.sycdn.imooc.com/5333a1920001d36402200220-100-100.jpg)
TA贡献1859条经验 获得超6个赞
$string = "ABC (Test1(even deeper) yes (this (works) too)) outside (((ins)id)e)";
$paren_num = 0;
$new_string = '';
foreach($string as $char) {
if ($char == '(') $paren_num++;
else if ($char == ')') $paren_num--;
else if ($paren_num == 0) $new_string .= $char;
}
$new_string = trim($new_string);
它通过遍历每个字符并计算括号来工作。仅当$paren_num == 0(在所有括号之外)时,才将字符附加到结果字符串中$new_string。
- 3 回答
- 0 关注
- 729 浏览
添加回答
举报