php sed нравится функциональность - PullRequest
2 голосов
/ 14 октября 2011

Я хорошо знаком с sed на bash shell, поэтому я делаю

cat $myfile | egrep $pattern | sed -e 's/$pattern/$replace/g'

много. Довольно часто я обнаруживаю, что мне нужно выполнить подобный «разбор строк» ​​внутри PHP.

Итак, мой вопрос прост: что эквивалентно sed -e 's/$pattern/$replace/g' в PHP?

Я знаю preg_match, preg_replace, но я ими не пользовался / совсем не знаком с ними. Я был бы очень признателен за пример кода на PHP. (преобразование, скажем, $var = '_myString' в $newVar = 'getMyString')

1 Ответ

8 голосов
/ 14 октября 2011

Функции preg_ используют ту же библиотеку регулярных выражений, что и Perl, поэтому вы должны быть дома.Здесь есть документация о синтаксисе здесь .

Например:

sed -e 's/$pattern/$replace/g'

будет выглядеть примерно так:

$output = preg_replace("/".$pattern."/", $replace, $input);

Наиболее распространенным являетсяиспользуйте / в качестве разделителя, но вы можете использовать и другие символы, которые могут быть полезны, если шаблон содержит много косых черт, как в случае с URL-адресами и тегами XML.Вы также можете найти preg_quote полезным.

...