(?!\.php)
является оператором регулярного выражения perl. less
обычно использует системный API регулярного выражения POSIX, поэтому обычно в расширенных регулярных выражениях 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
По умолчанию, однако, less
будет использоваться POSIX regcomp
с REG_EXTENDED, поэтому вы получите расширенные регулярные выражения вашей системы, поэтому обычно что-то похожее с grep -E
.
В расширенном регулярном выражении GNU нет аналогичного оператора просмотра или просмотра вперед.
Вы могли бы сделать это трудным путем:
index($|[^.]|\.($|([^p]|p($|([^h]|h($|[^p]))))))
С помощью less
вы можете использовать &
ключ для фильтрации строк, содержащих index.php
( &!index\.php
), а затем искать index
( /index
). (вы все равно пропустите другие экземпляры, index
которые появляются в строке, также содержащей index.php
).