Regular Expressions
Dopasuj reset: \ K
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:
- boost (od ???)
- grep -P ← używa PCRE
- Oniguruma ( od 5.13.3 )
- PCRE ( od 7.2 )
- Perl ( od 5.10.0 )
- PHP ( od 5.2.4 )
- Rubinowy (od 2.0.0)
... i (jak dotąd) nie są obsługiwane przez:
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
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