Какой вкус регулярного выражения grep?

Я предполагаю, что это не Perl Compatible Regular Expression, поскольку существует особый тип grep, который специально является PCRE. Что grep наиболее похожее на?

Есть ли какие-либо особые особенности из grep, о которых мне нужно знать? (Я привык к Perl и функциям preg в PHP)

Ответы

Ответ 1

Поведение по умолчанию GNU grep - использовать слегка ароматный вариант на основных регулярных выражениях POSIX, с подобным образом измененным видом Расширенные регулярные выражения POSIX для egrep (обычно aka grep -E). POSIX ERE - это то, что использует PHP ereg().

GNU grep также утверждает, что поддерживает grep -P для PCRE, кстати. Поэтому не требуется особого типа grep.

Ответ 3

Здесь хорошая запись здесь. Чтобы процитировать страницу, "grep должен использовать BRE, за исключением того, что grep -E использует ERE. (GNU grep подходит для некоторых расширений, в которых POSIX оставляет поведение неуказанным).

Другими словами, это долгая история.;)

Ответ 4

Страницы grep man делают довольно тщательную работу по объяснению аромата регулярного выражения, доступного в grep. man grep очень полезен.

Ответ 5

Grep - это реализация регулярных выражений POSIX. Существует два типа регулярных выражений posix - основные регулярные выражения и расширенные регулярные выражения. В grep обычно вы используете параметр -E, чтобы разрешить расширенные регулярные выражения.

Ответ 6

В PHP нет регулярной функции grep. Если вы ссылаетесь на семейство функций PHP ereg, то это регулярные выражения POSIX. Если вы имеете в виду утилиту командной строки Linux grep, то это регулярные выражения POSIX. Он поддерживает как основные, так и расширенные регулярные выражения POSIX.