Car*_*ary 5 php regex preg-replace
我正在尝试使用正则表达式(在php中)查找特定字符串,后面必须跟一个非字母数字字符(不区分大小写).
Example String:
Doggy is a lazy dog! Doggy. Dog and I.
Search String: Dog
Expected Result:
Doggy is a lazy <a href="">dog</a>! Doggy. <a href="">Dog</a> and I.
Run Code Online (Sandbox Code Playgroud)
所以它不应该与'Doggy'匹配,因为Dog子字符串后面没有非字母数字字符.
我正在沿着这些方向尝试一些东西,但它并没有完全符合我的要求.
preg_replace("/(dog)[^a-zA-Z0-9\s\p]/i/", "", $str);
Run Code Online (Sandbox Code Playgroud)
在我看来,您实际上在这里想做的是执行精确的单词匹配。不一定是“一个字符串后跟一个非字母数字”。
您可以使用\b“单词边界”正则表达式锚来实现此目的:
$search = "dog"
preg_replace("/\b".$search."\b/i", "", $str);
Run Code Online (Sandbox Code Playgroud)