在php中以@开头替换单词

在php中以@开头替换单词,php,preg-replace,Php,Preg Replace,我想将以@开头的任何单词替换为另一个单词 输入是我的值是@truth\u单词和bad $myword = "My value is @truth_word and bad"; $newtext = preg_replace("/^@/", "good" , $myword); echo $newtext; //My value is good and bad; 输出应该是我的值是好的和坏的您需要对字符串的开头(^)或@前面的空白字符(\s)使用正向查找,然后在它后面使用一些单词字符(\w):

我想将以@开头的任何单词替换为另一个单词

输入是我的值是@truth\u单词和bad

$myword = "My value is @truth_word and bad";
$newtext = preg_replace("/^@/", "good" , $myword); 
echo $newtext; //My value is good and bad;

输出应该是我的值是好的和坏的

您需要对字符串的开头(
^
)或
@
前面的空白字符(
\s
)使用正向查找,然后在它后面使用一些单词字符(
\w
):

$myword = "My value is @truth_word and bad";
$newtext = preg_replace("/^@/", "good" , $myword); 
echo $newtext; //My value is good and bad;
$myword = "My value is @truth_word and bad";
$newtext = preg_replace("/(?<=^|\s)@\w+/", "good" , $myword); 
echo $newtext;

这回答了你的问题吗?如果没有,你能提供更多的信息来帮助回答这个问题吗?否则,请考虑标注答案接受。看见