模块 1 · 第 4 课(共 4)课程中的4/32~10 min
模块课程(4/4)
转义元字符
正则表达式中的某些字符具有特殊含义:它们被称为
元字符。如果您想匹配文字字符(例如真实的
.,真正的+,真正的括号)您需要在它们前面加上前缀
反斜杠 \,转义它们。
要记住的元字符有十二个:
Code
. * + ? ^ $ | \ ( ) [ ] { } /(/ 并不是真正的引擎元字符,但必须在
JavaScript 文字符号 /.../。)
Code
Pattern: \$\d+\.\d\d
Sample: Prezzi: $9.99, $12.50, totale $22.49.
^^^^^ ^^^^^^ ^^^^^^这里我们转义 $ (字符串结尾锚点)和 . (通配符)以匹配
价格格式中的文字字符“美元+数字+点+两位数字”。
JS 字符串中的双反斜杠
当你在 JavaScript 字符串中编写模式时(就像你在我们的代码中所做的那样)
练习)反斜杠必须加倍。 JS 字符串 '\\d' 包含
两个字符(\ 和 d),并且正是正则表达式模式 \d。
JS
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslash课程编辑器显示模式已解码(您会看到一个
\d);你不必自己加倍任何东西。
12个特殊元字符
引擎中具有特殊含义的字符正好是12个:\\\ ^ $ . | ? * + ( ) [ {。如果要将它们作为文字文本进行匹配,则必须在它们前面添加反斜杠。在某些环境中(例如非原始 JS 字符串),您可能需要加倍反斜杠 (\\\\)。
尝试一下
锻炼#regex.m1.l4.e1
尝试:0加载中...
查找“$N.NN”格式的每个价格(美元、一位或多位数字、点、两位数字)。记住要转义“$”和“.”。
正在加载编辑器...
显示提示
$ 必须转义为 \\$,点为 \\。 - 否则该点与任何内容匹配。
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 次尝试后可用的解决方案