Regular Expressions
Сброс матча: \ K
Поиск…
замечания
Regex101 определяет функциональность \ K как:
\K
сбрасывает начальную точку сообщенного матча. Любые ранее употребляемые символы больше не включаются в финальный матч
Управляющая последовательность \K
поддерживается несколькими двигателями, языками или инструментами, такими как:
- увеличить (с тех пор)
- grep -P ← использует PCRE
- Онигурума ( с 5.13.3 )
- PCRE ( с 7,2 )
- Perl ( с 5.10.0 )
- PHP ( начиная с 5.2.4 )
- Ruby (начиная с 2.0.0)
... и (пока) не поддерживается:
Поиск и замена с помощью оператора \ K
Учитывая текст:
foo: bar
Я хотел бы заменить что-нибудь следующее «foo:» на «baz», но я хочу сохранить «foo:». Это можно сделать с помощью группы захвата, например:
s/(foo: ).*/$1baz/
Что приводит к тексту:
foo: baz
или мы могли бы использовать \K
, который «забывает» все, что он ранее сопоставил, с таким шаблоном:
s/foo: \K.*/baz/
Регулярное выражение соответствует «foo:», а затем встречается с \K
, предыдущие символы совпадений воспринимаются как должное и оставляются регулярным выражением, что означает, что только строка, соответствующая .*
Будет заменена на «baz», в результате получится текст:
foo: baz