我需要匹配并替换括号(包括括号)之间的特定单词。 像这样的东西:
xxx(xxxxSPECIFICWORDxxxxxxxxxxx)xxx
我需要替换它:
(xxxxSPECIFICWORDxxxxxxxxxxx)
我的文字看起来像这样:
xx(xxxx)xxxx(xxxxxxxx)xxx(xxx)xxx(xxxxSPECIFICWORDxxxxxxxxxxx)xxx
我尝试用preg_replace编写正则表达式,它将第一个括号中的所有文本替换为我最后一个特定的单词括号。我真的不知道该做什么可以有人帮助我吗?
感谢。
答案 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