我有以下正则表达式:
// Before: "Foo Bar Test";
$str = preg_replace( "/(^| )(\w)/", '$1+$2', $str );
// After: "+Foo +Bar +Test";
是否可以添加char" *"在每个单词的最后?
我要找的结果是:
// +Foo* +Bar* +Test*
是否可以在同一个正则表达式中执行此操作?或者我必须使用新的?
答案 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 );
获得相同的输出。