Szukaj…


Uwagi

Regex101 definiuje funkcjonalność \ K jako:

\K resetuje punkt początkowy zgłaszanego dopasowania. Wszelkie wcześniej wykorzystane postacie nie są już uwzględniane w ostatecznym meczu

Sekwencja ucieczki \K jest obsługiwana przez kilka silników, języków lub narzędzi, takich jak:

... i (jak dotąd) nie są obsługiwane przez:

  • .NETTO
  • awk
  • grzmotnąć
  • GNU ANTYLOPA
  • OIOM
  • Jawa
  • JavaScript
  • Notepad ++
  • Cel C
  • POSIX
  • Pyton
  • Qt / QRegExp
  • sed
  • Tcl
  • wigor
  • XML
  • XPath

Wyszukaj i zamień za pomocą operatora \ K

Biorąc pod uwagę tekst:

foo: bar

Chciałbym zamienić wszystko, co następuje po „foo:” na „baz”, ale chcę zachować „foo:”. Można to zrobić za pomocą takiej grupy przechwytywania:

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

Które wyniki w tekście:

foo: baz

Przykład 1

lub możemy użyć \K , który „zapomina” wszystko, co wcześniej pasował, z takim wzorcem:

s/foo: \K.*/baz/

Wyrażenie regularne pasuje do „foo:”, a następnie napotyka \K , poprzednio dopasowane znaki są brane za pewnik i pozostawione przez wyrażenie regularne, co oznacza, że tylko ciąg pasujący do .* Zostanie zastąpiony przez „baz”, co powoduje tekst:

foo: baz

Przykład 2



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow