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:

... et (jusqu'à présent) non pris en charge par:

  • .NET
  • awk
  • frapper
  • GNOU
  • ICU
  • Java
  • Javascript
  • Bloc-notes ++
  • Objectif c
  • POSIX
  • Python
  • Qt / QRegExp
  • sed
  • Tcl
  • vim
  • XML
  • XPath

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

Exemple 1

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

Exemple 2



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow