12-句点元字符和转义
17.11 句点元字符和转义
在正则表达式中,句点是一个特殊的字符,它表示“匹配任何内容”(除了新的一行)。通常,这个匹配一切的元字符用来消费那些输入中并不关心的内容。来看一个例子,查找一个5位数的邮政编码,此时并不关心这一行中的其他内容:
const input = "Address: 333 Main St., Anywhere, NY, 55532. Phone: 555-555- 2525.";
const match = input.match(/\d{5}.*/);
大家可能会发现自己经常需要匹配文字中的句点,比如,域名或IP地址中的句点。同样地,可能也会经常匹配一些正则表达式的元字符,比如,星号或圆括号,此时需要转义元字符。如果要转义任何特殊字符,只要在前面加一个反斜杠即可:
const equation = "(2 + 3.5) * 7";
const match = equation.match(/\(\d \+ \d\.\d\) \* \d/);
很多读者可能有使用文件名通配符的经验,或者会使用*.txt去搜索“所有文本文件”。这里的*是一个“通配符”元字符,它表示可以匹配任何东西。如果很熟悉这种用法,那么正则表达式中*的使用可能会让人觉得迷惑,因为它表示一个完全不一样的功能,并且不能单独使用。在正则表达式中,句点更接近文件名通配符中的*,除非需要匹配的是单个字符,而非整个字符串。
很多读者可能有使用文件名通配符的经验,或者会使用*.txt去搜索“所有文本文件”。这里的*是一个“通配符”元字符,它表示可以匹配任何东西。如果很熟悉这种用法,那么正则表达式中*的使用可能会让人觉得迷惑,因为它表示一个完全不一样的功能,并且不能单独使用。在正则表达式中,句点更接近文件名通配符中的*,除非需要匹配的是单个字符,而非整个字符串。