(?!\.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).