(?!\.php)
є оператором perge regexp. less
зазвичай використовується API POSIX regexp системи, тому зазвичай 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
).