本文介绍了替换以#开头的占位符,然后替换整个单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要替换文本中以散列标记(#)开头的单词。嗯,我知道怎样才能把整个单词都替换掉。

preg_replace("/".$variable."/", $value, $text);

因为该修饰符只接受单词字符,所以不会替换包含散列标记的单词。


我有此html,其中包含#companyName类型的变量,我将其替换为值。

推荐答案

匹配字母数字字符(速记w)和非字母数字字符(W),将下划线视为字母数字。这意味着,正如您所看到的,它不会在#之前匹配(除非前面有一个alnum字符)。

我建议您仅在查询词以alnum字符开头和结尾时才用括起来。

所以,可能是这样的(虽然我不知道任何PHP,所以这在语法上可能是完全错误的):

if (preg_match('/^w/', $variable))
    $variable = ''.$variable;
if (preg_match('/w$/', $variable))
    $variable = $variable.'';
preg_replace('/'.$variable.'/', $value, $text);

这篇关于替换以#开头的占位符,然后替换整个单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 12:46