有谁知道如何做一个与 preg_replace 一起工作的正则表达式?
我有一个像下面这样的字符串:
$string = "Best event in town is: [LOC=LONDON]Party London[/LOC] (more text...) [LOC=PARIS]Paris Party[/LOC] Check it out!";
我有一个位置:
$location = "LONDON"
现在我需要用当前位置 $location 的自定义文本替换 [LOC=*] 和 [/LOC] 之间的文本,并删除所有与当前位置不匹配的文本。不应删除方括号之间的文本。
在上面的示例中,结果应如下所示:
Best event in town is: Party London (more text...) Check it out!
您知道如何使用 preg_match 或您知道任何其他有效方法吗?
提前致谢!托比亚斯
你可以试试这个:
\[(?=LOC=LONDON)[^\]]*?\]([^[]*)\[\/LOC\]|\[LOC[^]]*\][^\[]*\[\/LOC\]
并替换为:
\1
示例源(在此处运行):
$location="LONDON";
$re = '/\[(?=LOC='.$location.')[^\]]*?\]([^[]*)\[\/LOC\]|\[LOC[^]]*\][^\[]*\[\/LOC\]/';
$str = 'Best event in town is: [LOC=LONDON]Party London[/LOC] (more text...) [LOC=PARIS]Paris Party[/LOC] Check it out! [LOC=DHAKA]dHAKA Party[/LOC] Check it out! ';
$subst = '\\1';
$result = preg_replace($re, $subst, $str);
echo $result;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句