匹配括号之间的特定单词

时间:2014-04-28 13:39:01

标签: regex preg-replace brackets

我需要匹配并替换括号(包括括号)之间的特定单词。 像这样的东西:

xxx(xxxxSPECIFICWORDxxxxxxxxxxx)xxx

我需要替换它:

(xxxxSPECIFICWORDxxxxxxxxxxx)

我的文字看起来像这样:

xx(xxxx)xxxx(xxxxxxxx)xxx(xxx)xxx(xxxxSPECIFICWORDxxxxxxxxxxx)xxx

我尝试用preg_replace编写正则表达式,它将第一个括号中的所有文本替换为我最后一个特定的单词括号。我真的不知道该做什么可以有人帮助我吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

\(.*?SpecificWord.*?\)

并将其替换为:

any other string

答案 1 :(得分:0)

丹尼斯,使用这个简单的正则表达式:

\([^(]+SPECIFICWORD[^)]+\)

这是一个演示:

<?php
$string = "xx(xxxx)xxxx(xxxxxxxx)xxx(xxx)xxx(xxxxSPECIFICWORDxxxxxxxxxxx)xxx";
$regex="~\([^(]+SPECIFICWORD[^)]+\)~";
echo preg_replace($regex,"\1NEWWORD",$string);
?>

输出:

xx(xxxx)xxxx(xxxxxxxx)xxx(xxx)xxxNEWWORDxxx