Suche…


Bemerkungen

Regex101 definiert \ K-Funktionalität als:

\K setzt den Startpunkt des gemeldeten Matches zurück. Alle zuvor verbrauchten Charaktere werden nicht mehr in das endgültige Spiel aufgenommen

Die \K Escape-Sequenz wird von mehreren Engines, Sprachen oder Tools unterstützt, z.

... und (bisher) nicht unterstützt von:

  • .NETZ
  • awk
  • bash
  • GNU
  • ICU
  • Java
  • Javascript
  • Notepad ++
  • Ziel c
  • POSIX
  • Python
  • Qt / QRegExp
  • sed
  • Tcl
  • vim
  • XML
  • XPath

Suchen und Ersetzen mit \ K-Operator

In Anbetracht des Textes:

Foo: Bar

Ich möchte alles, was "foo:" folgt, durch "baz" ersetzen, aber ich möchte "foo:" behalten. Dies könnte mit einer Capturing-Gruppe wie folgt durchgeführt werden:

s/(foo: ).*/$1baz/

Welche Ergebnisse ergeben sich aus dem Text:

foo: baz

Beispiel 1

oder wir könnten \K , was alles, was zuvor abgeglichen wurde, mit einem Muster wie folgt "vergisst":

s/foo: \K.*/baz/

Der reguläre Ausdruck stimmt mit "foo:" überein und trifft dann auf \K Die zuvor übereinstimmenden Zeichen werden als selbstverständlich betrachtet und vom regulären Ausdruck zurückgelassen. Dies bedeutet, dass nur die mit .* Übereinstimmende Zeichenfolge durch "baz" ersetzt wird.

foo: baz

Beispiel 2



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow