使用正则表达式在模式中插入特殊字符


Insert a special character into a pattern using Regular Expression

我有一个模式-像这样:

word1|some stuff word2|some stuff word3|some stuff

我想在单词之前添加@字符,后面跟着管道(管道之前的单词是不同的)-得到这样的东西:

@word1|some stuff, @word2|some stuff @word3|some stuff

我该怎么做?

您可以使用:

$str = "word1|some stuff word2|some stuff word3|some stuff"; 
$result = preg_replace('/('w+'|)/', '@$1', $str);
//=> @word1|some stuff @word2|some stuff @word3|some stuff
<<h3> Regex演示/h3>

使用

$replaced = preg_replace('~'w+'|~', '@$0', $yourstring);

在演示中,看看底部的替换。

  • 'w+匹配单词字符
  • '|匹配管道
  • @$0@替换匹配,然后整体匹配$0