Ben kullanarak bir günlükte .php izlemiyor "dizin" tüm örnekleri bulmak istiyorum less
. /index(?!\.php)
çalışmıyor. Mümkün mü? Daha az ve vim için regex nedir (farklılar mı?). Bu uygulamanın ilgili regex kütüphaneleri ile bu mümkün değil mi?
Ben kullanarak bir günlükte .php izlemiyor "dizin" tüm örnekleri bulmak istiyorum less
. /index(?!\.php)
çalışmıyor. Mümkün mü? Daha az ve vim için regex nedir (farklılar mı?). Bu uygulamanın ilgili regex kütüphaneleri ile bu mümkün değil mi?
Yanıtlar:
İçinde vim
, bunu yapabilirsiniz:
/index\(\.php\)\@!
Daha fazla ayrıntı için komut modunda :h \@
şunları deneyin :
\@! Matches with zero width if the preceding atom does NOT match at the
current position. /zero-width {not in Vi}
Like '(?!pattern)" in Perl.
Example matches
foo\(bar\)\@! any "foo" not followed by "bar"
a.\{-}p\@! "a", "ap", "aap", "app", etc. not immediately
followed by a "p"
if \(\(then\)\@!.\)*$ "if " not followed by "then"
\@<!
\(some\)\@<!thing
Eşleşir thing
ve everything
ve eşleşir nothing
, ancak eşleşmez something
.
(?!\.php)
perl regexp operatörüdür. less
genellikle sistemin POSIX normal ifade API'sini kullanır, bu nedenle genellikle GNU bir GNU sisteminde düzenli ifadeler vim
kullanır, vim
normal ifadeler kullanır .
Olarak vim
önceden cuonglm ile gösterildiği gibi, eşdeğer index(?!\.php)
olur index\(\.php\)\@!
ya da \vindex(\.php)@!
.
İçin less
, derleme zamanda, düzenli ifade kütüphanesi / API seçebilir ve sonucunda kullanımına regex tipi olarak:
--with-regex={auto,gnu,pcre,posix,regcmp,re_comp, regcomp,regcomp-local,none} Select a regular expression library auto
Varsayılan olarak, gerçi less
POSIX kullanacak regcomp
bunu tipik olduğu gibi benzer bir şey sisteminizin genişletilmiş düzenli ifadeler alırsınız, REG_EXTENDED ile grep -E
.
GNU genişletilmiş normal ifadesinde, operatörün arkasına ya da ileriye bakacak bir eşdeğer yoktur.
Zor yoldan yapabilirsin:
index($|[^.]|\.($|([^p]|p($|([^h]|h($|[^p]))))))
Tuşuyla less
, ( ) &
içeren satırları filtrelemek ve ardından ( ) öğesini aramak için tuşu kullanabilirsiniz . (yine de içeren bir satırda görünen diğer örneklerini özlersiniz ).index.php
&!index\.php
index
/index
index
index.php
less
kullanan derlenmiş zaman bağlıdır.
less
kullanım olup olmadığını kontrol edebiliriz . Ancak diğer kütüphanelerle kontrol etmenin bir yolunu biliyor musunuz? PCRE
ldd $(which less)
less --version
.
less --verion
sadece less 444
Telif Hakkı ile birlikte yazdırılıyor .