モジュールのレッスン (4/4)
メタ文字のエスケープ
正規表現の一部の文字には特別な意味があります。それらは次のように呼ばれます。
メタキャラクター。リテラル文字 (実際の文字など) と一致させたい場合は、
.、実際の +、実際のかっこ) を先頭に付ける必要があります。
バックスラッシュ \。エスケープします。
覚えておくべきメタ文字は次の 12 個です。
. * + ? ^ $ | \ ( ) [ ] { } /(/ は実際にはエンジンのメタ文字ではありませんが、次のようにエスケープする必要があります。
JavaScript リテラル表記 /.../)。
Pattern: \$\d+\.\d\d
Sample: Prezzi: $9.99, $12.50, totale $22.49.
^^^^^ ^^^^^^ ^^^^^^ここでは、$ (文字列末尾アンカー) と . (ワイルドカード) をエスケープして、
価格形式「ドル + 数字 + ドット + 2 桁」のリテラル文字。
JS文字列の二重バックスラッシュ
JavaScript 文字列内にパターンを記述する場合 (例で行うように)
演習) バックスラッシュは 2 倍にする必要があります。 JS 文字列 '\\d' には次のものが含まれます
2 文字 (\ と d) であり、正規表現パターン \d とまったく同じです。
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslashコースエディターには、すでにデコードされたパターンが表示されます(単一のパターンが表示されます)
\d);自分で何かを 2 倍にする必要はありません。
12 の特別なメタ文字
エンジン内で特別な意味を持つ文字はちょうど 12 文字です: \\\ ^ $ . | ? * + ( ) [ {。これらをリテラル テキストとして一致させたい場合は、それらの前にバックスラッシュを付ける必要があります。一部の環境 (未加工の JS 文字列など) では、バックスラッシュを 2 つ付ける必要がある場合があります (\\\\)。
試してみてください
すべての価格を「$N.NN」形式 (ドル、1 桁以上の数字、ドット、2 桁) で検索します。 「$」と「.」をエスケープすることを忘れないでください。
ヒントを表示
$ は \\$ としてエスケープし、ドットは \\ としてエスケープする必要があります。 - それ以外の場合、ドットは何にでも一致します。
3 回の試行後に解決策が利用可能になります
復習演習
テキスト内の文字通りの疑問符「?」をすべて見つけます。 「?」はメタ文字です。エスケープする必要があります。
ヒントを表示
逃げ場もなく、?は量指定子になります (モジュール 2)。その前に \\ を付けます。
3 回の試行後に解決策が利用可能になります
追加の課題
Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.
ヒントを表示
各ドットをエスケープするには、各ドットの前にバックスラッシュを挿入します。
3 回の試行後に解決策が利用可能になります