モジュールのレッスン (1/4)
リテラルパターン
正規表現では、「通常の」英数字 は単にそれ自体と一致します。
ciao をパターンとして指定すると、エンジンは内部の部分文字列 ciao を検索します。
テキスト。これほど魔法的なことはありません。左から右へ位置ごとにスキャンします。
Pattern: ciao
Sample: Buongiorno, ciao mondo! Ti dico anche ciao.
^^^^ ^^^^一致には常に 2 つの重要な情報が含まれます。
- 一致したテキスト (ここでは
ciao); - サンプル内で開始する インデックス (0 ベースのオフセット) (ここでは
12および38)。
デフォルトでは、正規表現は 大文字と小文字を区別します: ciao は Ciao と一致しません。または
CIAO。大文字と小文字を無視するには、i フラグを追加します (大文字と小文字は区別されません)。
エンジンの仕組み
正規表現エンジンはテキストを一度に 1 文字ずつ検査します。リテラル パターン ciao を検索する場合、最初に文字 c が検索されます。見つかると、次の文字が i、次に a、最後に o であるかどうかが検証されます。これらの一致のいずれかが失敗した場合、エンジンは次の開始位置に戻り、再び c の検索を開始します。
リテラル パターンと g フラグ
g (グローバル) フラグがないと、エンジンは 最初 の一致を見つけて停止します。と
g 続行され、文字列の終わりまで後続のすべての一致が収集されます。このコースでは、
ほぼ常に g をオンにします。テキスト内に存在するすべての一致を確認したいのです。
試してみてください
サンプル内で単語「ciao」が正確に (大文字と小文字を区別して) 出現する箇所をすべて検索します。ヒント: `g` フラグを思い出してください。
ヒントを表示
パターンは言葉そのものです。大文字は一致してはなりません: i フラグはありません。
3 回の試行後に解決策が利用可能になります
復習演習
大文字/小文字を無視して、テキスト内で出現する「errore」という単語をすべて検索します。
ヒントを表示
パターンと同じ単語ですが、g の横に i フラグ (大文字と小文字を区別しない) を追加します。
3 回の試行後に解決策が利用可能になります
追加の課題
サンプル ログ テキスト内で単語「WARNING」(大文字、大文字と小文字が区別される)が正確に出現する箇所をすべて特定して収集します。
ヒントを表示
リテラル文字列 WARNING を直接探して、i フラグをアクティブにしないように注意してください。
3 回の試行後に解決策が利用可能になります