(?!\.php)
est un opérateur perge regexp. less
utilise généralement l'API regexp POSIX du système, donc généralement les expressions régulières étendues GNU sur un système GNU, vim
utilisent vim
des expressions régulières.
Dans vim
, comme l'a déjà montré cuonglm, l'équivalent de index(?!\.php)
serait index\(\.php\)\@!
ou\vindex(\.php)@!
.
Pour less
, au moment de la compilation, vous pouvez choisir la bibliothèque / API regex et par conséquent le type regex à utiliser:
--with-regex={auto,gnu,pcre,posix,regcmp,re_comp,
regcomp,regcomp-local,none}
Select a regular expression library auto
Par défaut, cependant, less
utilise POSIX regcomp
avec REG_EXTENDED, vous obtiendrez donc les expressions régulières étendues de votre système, donc généralement quelque chose de similaire à celui degrep -E
.
Dans l'expression rationnelle étendue GNU, il n'y a pas d'opérateur de recherche arrière ou d'anticipation équivalent.
Vous pouvez le faire à la dure:
index($|[^.]|\.($|([^p]|p($|([^h]|h($|[^p]))))))
Avec less
, vous pouvez éventuellement utiliser la &
clé pour filtrer les lignes contenant index.php
( &!index\.php
), puis rechercher index
( /index
). (vous manqueriez encore les autres instances index
qui apparaissent sur une ligne contenant également index.php
).