PHP:调整正则表达式,在每个单词的末尾添加一个字符

时间:2015-08-28 07:44:25

标签: php regex

我有以下正则表达式:

// Before: "Foo Bar Test";
$str = preg_replace( "/(^| )(\w)/", '$1+$2', $str );
// After: "+Foo +Bar +Test";

是否可以添加char" *"在每个单词的最后?

我要找的结果是:

// +Foo* +Bar* +Test*

是否可以在同一个正则表达式中执行此操作?或者我必须使用新的?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

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

echo "$str\n";
//=> +Foo* +Bar* +Test*

将第二个被捕获的群组设为(\w+)会使其捕获完整的字词,并在*之后$2*放在正确的位置。

PS:您还可以使用 lookbehind断言

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

获得相同的输出。