Я пытаюсь заменить несколько ключевых слов в файле csv, например, у меня есть список ключевых слов cat, mouse, dog с я хотел бы заменить что-то, здесь, я в настоящее время использую это http://phpcsv.sourceforge.net/phpcsv-1.0.php, это прекрасно, и он говорит, что он использует PCRE для замены значений, мой вопрос в том, что мне нужно вводить в поле поиска и замены для достижения этого результата?PCRE заменить несколько значений на несколько строк
ответ
Вы можете использовать
Поиск(?<=^|,)(cat|mouse|dog)(?=,|$)
Заменить${1}2
${1}
используется для ссылки на строку, захваченное ()
в Search
поле.
Обычно вы можете использовать $1
, но так как он немедленно следует 2
, то 1
должен быть заключен в {}
.
Если значения могут быть указаны в "
, добавьте "?
до и после (cat|mouse|dog)
.
(?<=^|,)
означает, что смотреть за ним должно быть начало строки или запятой.
(?=,|$)
означает, что впереди впереди должна быть запятая или конец строки.
Если замены для каждого ключевого слова различны, я думаю, что вам придется делать каждый отдельно, например.
Поиск(?<=^|,)cat(?=,|$)
Заменитьhamster
В качестве альтернативы, если используется собственный код, который вы могли бы сделать все замены в один присест, передавая массивы в качестве аргументов preg_replace
.
Что вы имеете в виду? Вы заменяете их на PHP, поэтому какие поля поиска и замены вы вводите? – Jon
Я использую http://phpcsv.sourceforge.net/phpcsv-1.0.php, у него есть 2 поля для поиска, замены, мне жаль, что я не кодер, я не понимаю многих вещей. – XkiD
было бы проще с [' str_replace'] (http://www.php.net/manual/en/function.str-replace.php) и предоставить ему массивы для шаблона и замены. – Jon