PCRE用多个字符串替换多个值

时间:2013-02-24 13:21:14

标签: php regex pcre

我正在尝试批量替换csv文件中的一些关键字,例如我有一个关键字 cat,mouse,dog 的列表,我想用替换一些东西,否则,在这里,我目前正在使用这个http://phpcsv.sourceforge.net/phpcsv-1.0.php它是完美的,它说它使用PCRE替换值,我的问题是我需要在搜索和替换字段中键入什么来实现这个结果?< / p>

1 个答案:

答案 0 :(得分:1)

您可以使用

搜索 (?<=^|,)(cat|mouse|dog)(?=,|$) 替换 ${1}2

${1}用于引用()字段中Search抓取的字符串。
通常情况下,您可以使用$1,但由于2后面紧随其后,1需要包含{}

如果"之前和之后"?添加(cat|mouse|dog),则可以附加值。

(?<=^|,)意味着在后面必须有一行或一个逗号的开头 (?=,|$)意味着展望未来必须有一个逗号或一行的结尾。

如果每个关键字的替换次数不同,我认为您必须单独进行,例如

搜索 (?<=^|,)cat(?=,|$) 替换 hamster

或者,如果使用您自己的代码,您可以通过将数组作为参数传递给preg_replace来一次性完成所有替换。