답변:
에서 vim다음과 같이 할 수 있습니다.
/index\(\.php\)\@!
자세한 내용을 보려면 명령 모드에서 다음을 시도하십시오 :h \@.
\@! 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일치 하지만 . thingeverythingnothingsomething
(?!\.php)perl regexp 연산자입니다. less일반적으로 시스템의 POSIX regexp API를 사용하므로 일반적으로 GNU 시스템에서 GNU 확장 정규식은 정규식을 vim사용 vim합니다.
에서는 vim이미 cuonglm 의해 도시 된 바와 같이, 등가의 index(?!\.php)것 index\(\.php\)\@!또는 \vindex(\.php)@!.
의 경우 less컴파일 타임에 정규식 라이브러리 / API를 선택하고 그 결과 사용할 정규 표현식 유형을 선택할 수 있습니다.
--with-regex={auto,gnu,pcre,posix,regcmp,re_comp, regcomp,regcomp-local,none} Select a regular expression library auto
그러나 기본적으로 lessPOSIX regcomp를 REG_EXTENDED와 함께 사용 하므로 시스템의 확장 정규 표현식을 얻을 수 grep -E있습니다.
GNU 확장 정규 표현식에서는 뒤를 닮거나 앞을 내다 보는 연산자가 없습니다.
어려운 방법으로 할 수 있습니다.
index($|[^.]|\.($|([^p]|p($|([^h]|h($|[^p]))))))
로 키를 less사용하여 ( )가 &포함 된 행을 필터링 한 다음 ( ) 을 검색 할 수 있습니다. (을 포함하는 행에 나타나는 다른 인스턴스는 여전히 그리워합니다 ).index.php&!index\.phpindex/indexindexindex.php
less사용 하는 정규식 라이브러리 는 컴파일 된 시간에 달려 있다고 생각합니다 .
less하여 사용 여부를 확인할 수 있습니다 . 그러나 다른 도서관과 함께 확인하는 방법을 알고 있습니까? PCREldd $(which less)
less --version.
less --verion만 인쇄합니다 less 444.