メインコンテンツにスキップ
モジュール 1 · レッスン 1 / 4コース内の 1/32~8 min
モジュールのレッスン (1/4)

リテラルパターン

正規表現では、「通常の」英数字 は単にそれ自体と一致します。 ciao をパターンとして指定すると、エンジンは内部の部分文字列 ciao を検索します。 テキスト。これほど魔法的なことはありません。左から右へ位置ごとにスキャンします。

Code
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 をオンにします。テキスト内に存在するすべての一致を確認したいのです。

試してみてください

運動#regex.m1.l1.e1
試行回数: 0読み込み中…

サンプル内で単語「ciao」が正確に (大文字と小文字を区別して) 出現する箇所をすべて検索します。ヒント: `g` フラグを思い出してください。

エディターを読み込み中…
ヒントを表示

パターンは言葉そのものです。大文字は一致してはなりません: i フラグはありません。

3 回の試行後に解決策が利用可能になります

復習演習

運動#regex.m1.l1.e2
試行回数: 0読み込み中…

大文字/小文字を無視して、テキスト内で出現する「errore」という単語をすべて検索します。

エディターを読み込み中…
ヒントを表示

パターンと同じ単語ですが、g の横に i フラグ (大文字と小文字を区別しない) を追加します。

3 回の試行後に解決策が利用可能になります

追加の課題

運動#regex.m1.l1.e3
試行回数: 0読み込み中…

サンプル ログ テキスト内で単語「WARNING」(大文字、大文字と小文字が区別される)が正確に出現する箇所をすべて特定して収集します。

エディターを読み込み中…
ヒントを表示

リテラル文字列 WARNING を直接探して、i フラグをアクティブにしないように注意してください。

3 回の試行後に解決策が利用可能になります