URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7396
[ Назад ]

Исходное сообщение
"Нежадные регэкспы в egrep"

Отправлено Den_Urasov , 02-Июн-08 10:54 
Есть файл file.ext, с содержимым:
sada<sdfsdsd>asdas>

Почему команда:
egrep -oE '<.*?>' file.ext
возвращает
<sdfsdsd>asdas>

Как заставить её понимать нежадные регэкспы и возвращать
<sdfsdsd>


Содержание

Сообщения в этом обсуждении
"Нежадные регэкспы в egrep"
Отправлено phpcoder , 02-Июн-08 10:57 
>Есть файл file.ext, с содержимым:
>sada<sdfsdsd>asdas>
>
>Почему команда:
>egrep -oE '<.*?>' file.ext

[c0der@xxx ~]$ echo "sada<sdfsdsd>asdas>" | egrep -o '<[^>]+>'
<sdfsdsd>



"Нежадные регэкспы в egrep"
Отправлено Den_Urasov , 02-Июн-08 11:11 
>[c0der@xxx ~]$ echo "sada<sdfsdsd>asdas>" | egrep -o '<[^>]+>'
><sdfsdsd>

Хорошо, это понятно. Но все-таки egrep поддерживает работу с нежадными выражениями или нет?
Почему, в моем случае, например preg_match_all в php отрабатывает с регэкспом <.*?> и возвращает <sdfsdsd>, а egrep не хочет?


"Нежадные регэкспы в egrep"
Отправлено angra , 03-Июн-08 02:31 
Потому что egrep это вам не pcre в отличии от варианта в пыхе. Можно кстати ман было почитать на тему различий grep и egrep:

In GNU grep, there is no difference in  available functionality using either syntax.  In other implementations, basic regular expressions are less powerful.


"Нежадные регэкспы в egrep"
Отправлено jd2 , 03-Июн-08 02:37 
AFAIK grep не поддерживает минимальные квантификаторы. Это, вроде, перловая мулька (может ещё где есть, не знаю), а php, если я правильно понимаю, использует перловые же регекспы.