Поиск…


замечания

Regex101 определяет функциональность \ K как:

\K сбрасывает начальную точку сообщенного матча. Любые ранее употребляемые символы больше не включаются в финальный матч

Управляющая последовательность \K поддерживается несколькими двигателями, языками или инструментами, такими как:

... и (пока) не поддерживается:

  • .СЕТЬ
  • AWK
  • удар
  • GNU
  • ICU
  • Джава
  • Javascript
  • Notepad ++
  • Objective-C
  • POSIX
  • питон
  • Qt / QRegExp
  • СЕПГ
  • Tcl
  • напор
  • XML
  • XPath

Поиск и замена с помощью оператора \ K

Учитывая текст:

foo: bar

Я хотел бы заменить что-нибудь следующее «foo:» на «baz», но я хочу сохранить «foo:». Это можно сделать с помощью группы захвата, например:

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

Что приводит к тексту:

foo: baz

Пример 1

или мы могли бы использовать \K , который «забывает» все, что он ранее сопоставил, с таким шаблоном:

s/foo: \K.*/baz/

Регулярное выражение соответствует «foo:», а затем встречается с \K , предыдущие символы совпадений воспринимаются как должное и оставляются регулярным выражением, что означает, что только строка, соответствующая .* Будет заменена на «baz», в результате получится текст:

foo: baz

Пример 2.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow