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
使うことができます。 \K
、以前にマッチしたものをすべて "忘れ"ています。
s/foo: \K.*/baz/
正規表現は "foo:"にマッチしてから\K
に出会うと、前に一致した文字は当てになり、 .*
マッチした文字列だけが "baz"に置き換えられ、
foo:baz
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow