使用正则表达式将特殊字符插入到图案中

时间:2014-07-23 20:53:01

标签: php regex

我有一个模式 - 像这样:

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

我想在一个单词后跟管道(管道前的单词不同)之前添加@字符 - 得到这样的内容:

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

我该怎么做?

2 个答案:

答案 0 :(得分:5)

您可以使用:

$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

Regex Demo

答案 1 :(得分:0)

使用此:

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

the demo中,查看底部的替换。

<强>解释

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