2013-02-24 109 views
1

我想大量替换一些csv文件中的一些关键字,例如我有一个关键字列表猫,鼠标,狗我想用替换一些东西,这里,我目前使用http://phpcsv.sourceforge.net/phpcsv-1.0.php这是完美的,它说它使用PCRE来替换值,我的问题是我需要输入搜索和替换字段来实现这个结果?PCRE用多个字符串替换多个值

+0

你是什么意思?你正在用PHP替换它们,那么你在输入什么搜索和替换字段呢? – Jon 2013-02-24 13:22:36

+0

我正在使用http://phpcsv.sourceforge.net/phpcsv-1.0.php,它有2个字段的搜索,替换,我很抱歉,我不是一个编码器,我不明白很多事情 – XkiD 2013-02-24 13:32:12

+0

会更容易与[ str_replace'](http://www.php.net/manual/en/function.str-replace.php)并为它提供模式和替换的数组。 – Jon 2013-02-24 13:33:32

回答

1

你可以使用

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

${1}用来引用由()Search场捕获的字符串。
通常情况下,您可以使用$1,但由于紧接着是2,因此需要将1包含在{}中。

如果这些值可能包含在"之前和之后加上"?(cat|mouse|dog)

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

如果替换对于每个关键字都不相同,我认为您必须分别进行各自的替换,例如,

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

或者,如果使用自己的代码,你可以通过传递数组参数preg_replace使一次性全部替换。

+0

但是,如果我想要像猫,老鼠,狗和替换仓鼠,大象,章鱼,这是我想要的东西,但我错误地写了猫2等东西笏012 – XkiD 2013-02-24 17:43:13

+0

@XkiD。更新了答案。 – MikeM 2013-02-24 19:46:15