删除包含某些单词 - 正则表达式的括号

时间:2015-10-17 00:13:16

标签: php regex

我目前正在使用正则表达式从字符串中删除括号。它运行良好,甚至可以应用于嵌套括号。但是,有些时候我不想删除括号及其内容。我怎样才能删除包含单词remove.的括号(及其内容)并保留其他括号?

$string = "ABC (test. blah blah) outside (remove. take out)";
echo preg_replace("/\(([^()]*+|(?R))*\)/","", $string);

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

random_network

并替换为josilber

Regex live here.

解释

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)([^)]+)[)]

Regex live here.

使用remove代码,应为:

=

希望它有所帮助。