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

メタ文字のエスケープ

正規表現の一部の文字には特別な意味があります。それらは次のように呼ばれます。 メタキャラクター。リテラル文字 (実際の文字など) と一致させたい場合は、 .、実際の +、実際のかっこ) を先頭に付ける必要があります。 バックスラッシュ \。エスケープします。

覚えておくべきメタ文字は次の 12 個です。

Code
.  *  +  ?  ^  $  |  \  (  )  [  ]  {  }  /

(/ は実際にはエンジンのメタ文字ではありませんが、次のようにエスケープする必要があります。 JavaScript リテラル表記 /.../)。

Code
Pattern: \$\d+\.\d\d
Sample:  Prezzi: $9.99, $12.50, totale $22.49.
                 ^^^^^  ^^^^^^         ^^^^^^

ここでは、$ (文字列末尾アンカー) と . (ワイルドカード) をエスケープして、 価格形式「ドル + 数字 + ドット + 2 桁」のリテラル文字。

JS文字列の二重バックスラッシュ

JavaScript 文字列内にパターンを記述する場合 (例で行うように) 演習) バックスラッシュは 2 倍にする必要があります。 JS 文字列 '\\d' には次のものが含まれます 2 文字 (\ と d) であり、正規表現パターン \d とまったく同じです。

JS
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslash

コースエディターには、すでにデコードされたパターンが表示されます(単一のパターンが表示されます) \d);自分で何かを 2 倍にする必要はありません。

12 の特別なメタ文字

エンジン内で特別な意味を持つ文字はちょうど 12 文字です: \\\ ^ $ . | ? * + ( ) [ {。これらをリテラル テキストとして一致させたい場合は、それらの前にバックスラッシュを付ける必要があります。一部の環境 (未加工の JS 文字列など) では、バックスラッシュを 2 つ付ける必要がある場合があります (\\\\)。

試してみてください

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

すべての価格を「$N.NN」形式 (ドル、1 桁以上の数字、ドット、2 桁) で検索します。 「$」と「.」をエスケープすることを忘れないでください。

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

$ は \\$ としてエスケープし、ドットは \\ としてエスケープする必要があります。 - それ以外の場合、ドットは何にでも一致します。

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

復習演習

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

テキスト内の文字通りの疑問符「?」をすべて見つけます。 「?」はメタ文字です。エスケープする必要があります。

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

逃げ場もなく、?は量指定子になります (モジュール 2)。その前に \\ を付けます。

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

追加の課題

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

Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.

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

各ドットをエスケープするには、各ドットの前にバックスラッシュを挿入します。

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