Regular Expressions
Match Reset: \ K
Recherche…
Remarques
Regex101 définit la fonctionnalité \ K comme:
\K
réinitialise le point de départ de la correspondance signalée. Tous les personnages précédemment consommés ne sont plus inclus dans le match final
La séquence d'échappement \K
est supportée par plusieurs moteurs, langages ou outils, tels que:
- boost (depuis ???)
- grep -P ← utilise PCRE
- Oniguruma ( depuis 5.13.3 )
- PCRE ( depuis 7.2 )
- Perl ( depuis 5.10.0 )
- PHP ( depuis 5.2.4 )
- Ruby (depuis 2.0.0)
... et (jusqu'à présent) non pris en charge par:
Rechercher et remplacer en utilisant l'opérateur \ K
Vu le texte:
foo: bar
Je voudrais remplacer tout ce qui suit "foo:" par "baz", mais je veux garder "foo:". Cela pourrait être fait avec un groupe de capture comme celui-ci:
s/(foo: ).*/$1baz/
Qui résulte dans le texte:
foo: baz
ou nous pourrions utiliser \K
, qui "oublie" tout ce qu’il a précédemment trouvé, avec un motif comme celui-ci:
s/foo: \K.*/baz/
Le regex correspond à "foo:" et rencontre ensuite le \K
, les caractères de correspondance précédents sont pris pour acquis et laissés par le regex, ce qui signifie que seule la chaîne correspondant à .*
Sera remplacée par "baz", résultant dans le texte:
foo: baz