我需要替换文本中以井号 (#) 开头的单词。
好吧,我知道如何替换整个单词。
preg_replace("/\b".$variable."\b/", $value, $text);
因为 \b 修饰符只接受单词字符,所以包含哈希标记的单词不会被替换。
我有这个 html,其中包含 #companyName 类型的变量,我将其替换为值。
\b
字母数字字符之间的匹配(简写\w
) 和非字母数字字符 (\W
),将下划线视为字母数字。正如您所看到的,这意味着它不会在#
(除非前面有一个 alnum 字符)。
我建议您仅将查询词括起来\b
如果它以 alnum 字符开头和结尾。
所以,也许是这样的(虽然我不懂 PHP,所以这在语法上可能是完全错误的):
if (preg_match('/^\w/', $variable))
$variable = '\b'.$variable;
if (preg_match('/\w$/', $variable))
$variable = $variable.'\b';
preg_replace('/'.$variable.'/', $value, $text);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)