On Mon, Jul 19, 2004 at 03:12:10PM +0300, Alexander Shopov wrote: > Здравейте, > какъв е израза за напасване на отрицания в регулярните изрази? > Например: > abv > напасва всички редове, които съдържат > abv > > Как напасвам редовете, които не съдържат abv?
Кратко и ясно: не можеш :( Регулярните изрази работят за откриване на съвпадения, не на несъвпадения... Има едно изключение, виж по-долу, но на теб няма да ти свърши работа. [snip] > Търся решение, което да роботи в GNU sed и awk. > > Не искам да правя шашмалогии с пускане на sed с -n, и след това магии с > бранчове и p команда. Не, със sed и awk няма да стане. Единственото, което може да използва регулярни изрази и да отбележи НЕсъвпадения, е regexp engine в по-новите версии на Perl: мисля, че от 5.6 нататък (със сигурност в 5.7 и 5.8) се поддържат lookaheads, които ти позволяват да направиш ^(?!.*abv) Sed/awk обаче не поддържат такъв синтаксис. Поздрави, Петър -- Peter Pentchev [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 because I didn't think of a good beginning of it.
pgpXknTb2weSl.pgp
Description: PGP signature
