Вопрос по perl, regex – Какой вкус регулярного выражения grep?

22

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

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

boisenberry .... user105033
Стоит отметить, что grep (и несколько его разновидностей регулярных выражений) значительно опередили Perl и php. Вопрос не в том, почему grep не делает то, что делает per? но "почему Perl решил сделать что-то другое, что grep?&quo dmckee

Ваш Ответ

6   ответов
22

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

GNUgrep также утверждает, что поддерживаетgrep -P для PCRE, кстати. Так что не очень особенный видgrep обязательный

Я думаю, что GNUgrep просто поддерживаю GNU BRE и GNU ERE. Потому что согласно Regular-expressions.info / refflavors.html POSIX BRE и POSIX ERE не поддерживают\w но GNUgrep делает. Gumbo
«Специальный» grep, на который он ссылается, может быть ack, который заслуживает упоминания. Chris Lutz
10
Отличная ссылка! Stan Graves
@ semiuseless: Так что, говорите? :) Trampas Kirk
Голосовать? Это то, к чему мы пришли? Telemachus
8

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

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

1

что такое регулярное выражение, доступное в grep.man grep очень полезно.

На этом сайте недостаточно RTFM !! ;) man regex RandomNickName42
1

регулярных выражений posix - базовые регулярные выражения и расширенные регулярные выражения. В grep обычно вы используете опцию -E, чтобы разрешить расширенные регулярные выражения.

0

EREG семейство функций PHP, то это регулярные выражения POSIX. Если вы имеете в виду Linuxgrep утилита командной строки, этоPOSIX регулярные выражения также. Он поддерживает как базовые, так и расширенные регулярные выражения POSIX.

Похожие вопросы