替换为使用正则表达式选择的字符串

时间:2013-11-05 13:41:25

标签: php regex

我有相当大的txt文件,我想在使用正则表达式选择的字符串中使用replace。

文件中填充了多行,如下所示:

...||date|14.02.2010||interest|games and books||options|opt1, opt2 and opt3||age|24||...

现在在|options|opt1, opt2 and opt3|我希望将and更改为,,使其看起来像|options|opt1, opt2, opt3|

我认为这应该是这样的:

  1. 用正则表达式选择字符串,例如\|options\|(.*?)\|
  2. 现在是这样的:用and中的,替换$1
  3. 并重复多次。

    我怎么能用PHP做到这一点?我希望这显然足够了。

2 个答案:

答案 0 :(得分:0)

怎么样:

$str = '...||date|14.02.2010||interest|games and books||options|opt1, opt2 and opt3||age|24||...';

$str = preg_replace('/(\|options\|[^|]*) and/', "$1,", $str);
echo $str,"\n";

<强>输出:

...||date|14.02.2010||interest|games and books||options|opt1, opt2, opt3||age|24||...

答案 1 :(得分:0)

试试这个

$str= preg_replace('/(\|options\|[^|]+) and /', '\1,', $str);