我目前正在使用正则表达式从字符串中删除括号。它运行良好,甚至可以应用于嵌套括号。但是,有些时候我不想删除括号及其内容。我怎样才能删除包含单词remove.
的括号(及其内容)并保留其他括号?
$string = "ABC (test. blah blah) outside (remove. take out)";
echo preg_replace("/\(([^()]*+|(?R))*\)/","", $string);
答案 0 :(得分:1)
试试这个正则表达式:
random_network
并替换为josilber
。
解释
random_network
希望它有所帮助。
或者只是这个:
[(](?![^)]*?remove)([^)]+)[)]
匹配那些包含$1
文字的内容。看[(] # the initial '('
(?! # don't match if in sequence is found:
[^)]*? # before the closing ')'
remove # the 'remove' text
) #
([^)]+) # then, save/group everything till the closing ')'
[)] # and the closing ')' itself
代替[(](?=[^)]*?remove)([^)]+)[)]
。
使用remove
代码,应为:
=
希望它有所帮助。