モジュールのレッスン (3/4)
`m` フラグ: 複数行
m (複数行) フラグを使用すると、アンカー ^ と $ の意味が変わります。
それらはもはや、文字列全体の開始/終了ではなく、の開始/終了です。
各行。行は \n (または行の開始/終了によって区切られます)
文字列)。
Pattern: ^Errore
Flag: gm
Sample: Errore: A\nInfo: B\nErrore: C
^^^^^^ ^^^^^^m がないと、絶対開始位置の Errore のみと一致します。
サンプル(1試合)。 m を使用すると、すべての行の先頭と一致します (2
一致します)。
m はドットを変更しません
よくある混乱: m フラグはドットの意味を変更しません
.。 m であっても、ドットは依然として \n と一致しません。ドットを作るには
必要なものすべてに一致します s フラグ (モジュール 1 で説明)。
m と s は直交しています。これらを個別に一緒に使用したり (ms)、
あるいはどちらでもない。
複数行のフラグと行ごとの処理
m フラグは、文字列全体の絶対的な開始と終了だけを調べるのではなく、複数行のテキスト ブロック内の各行の開始と終了 (\\n で区切られる) を一致させることにより、^ と $ の動作を変更します。
試してみてください
「ERROR」で始まるすべての行を検索します。各行は \\n で区切られます。フラグ `g` と `m` を使用します。
ヒントを表示
m フラグを使用すると、^ は絶対的な最初の文字だけでなく、内側の行の先頭にも一致します。
3 回の試行後に解決策が利用可能になります
復習演習
ピリオドで終わるすべての行を検索します。 `$` アンカーを `m` および `g` フラグとともに使用します。
ヒントを表示
gm フラグ付きの \\.$ は、サンプルの末尾だけでなく、すべての行の末尾のピリオドと一致します。
3 回の試行後に解決策が利用可能になります
追加の課題
Find all lines in a multiline log that start exactly with the string `ID:` followed by a digit.
ヒントを表示
ID: の前に ^ を使用し、m フラグがアクティブであることを確認してください。
3 回の試行後に解決策が利用可能になります