替换以#开头的占位符,然后替换整个单词
我需要替换文本中以散列标记(#)开头的单词。 嗯,我知道怎样才能把整个单词都替换掉。
preg_replace("/".$variable."/", $value, $text);
因为该修饰符只接受单词字符,所以不会替换包含散列标记的单词。
我有此html,其中包含#companyName类型的变量,我将其替换为值。
解决方案
匹配字母数字字符(速记
w
)和非字母数字字符(W
),将下划线视为字母数字。这意味着,正如您所看到的,它不会在#
之前匹配(除非前面有一个alnum字符)。
括起来。
所以,可能是这样的(虽然我不知道任何PHP,所以这在语法上可能是完全错误的):
if (preg_match('/^w/', $variable))
$variable = ''.$variable;
if (preg_match('/w$/', $variable))
$variable = $variable.'';
preg_replace('/'.$variable.'/', $value, $text);
相关文章