PHP:调整regex,在每个单词的末尾添加一个字符

PHP:调整regex,在每个单词的末尾添加一个字符,php,regex,Php,Regex,我有以下正则表达式: // Before: "Foo Bar Test"; $str = preg_replace( "/(^| )(\w)/", '$1+$2', $str ); // After: "+Foo +Bar +Test"; 可以在每个单词的末尾加上字符“*”吗 我想要的结果是: // +Foo* +Bar* +Test* 在同一个正则表达式中可以这样做吗?还是我必须用一个新的 您可以执行以下操作: $str = preg_replace( "/(^| )(\w+)\b/",

我有以下正则表达式:

// Before: "Foo Bar Test";
$str = preg_replace( "/(^| )(\w)/", '$1+$2', $str );
// After: "+Foo +Bar +Test";
可以在每个单词的末尾加上字符“*”吗

我想要的结果是:

// +Foo* +Bar* +Test*
在同一个正则表达式中可以这样做吗?还是我必须用一个新的

您可以执行以下操作:

$str = preg_replace( "/(^| )(\w+)\b/", '$1+$2*', $str );

echo "$str\n";
//=> +Foo* +Bar* +Test*
将第二个捕获的组设为
(\w+)
将使其捕获完整单词,并将
*
放在
$2
之后将
*
放在正确的位置

PS:您还可以使用查找断言

$str = preg_replace( "/(?<= |^)(\w+)\b/", '+$1*', $str );

$str=preg\u replace(“/(?非常感谢您的回复!它工作得很好!):)您可能可以将其简化为
preg\u replace('/\w+/','+$0*',$str)