点 (.) 和反斜杠 ()

某些字符在正则表达式中具有一种含义,但在其他上下文中具有完全不同的含义。例如,在正则表达式中,句点 (.) 是一个特殊字符,用于匹配任何一个字符。在书面语言中,句点 (.) 用于表示句子的结尾。在数学中,小数点 (.) 用于将数字的整数部分与小数部分分开。

正则表达式首先在正则表达式的上下文中评估特殊字符:如果表达式遇到句点,则匹配任何一个字符。

例如,正则表达式 1. 匹配以下内容:

  • 11
  • 1A

正则表达式 1.1 匹配以下内容:

  • 111
  • 1A1

如果您将 IP 地址作为正则表达式提供,则会得到不可预测的结果。例如,正则表达式 0.0.0.0 匹配以下内容:

  • 0102030
  • 0a0b0c0

如需成功使用正则表达式来识别原始上下文中的句点,将其作为 IP 地址不同部分的分隔符(而不是用于匹配任何其他字符的特殊字符),您需要提供一个信号来表明这一点。反斜杠 (\) 就是该信号。当正则表达式遇到反斜杠时,它会识别出应按字面意思解释下一个字符。用于匹配 IP 地址 0.0.0.0 的正则表达式如下所示:

0\.0\.0\.0

使用反斜杠转义任何特殊字符并按字面意思解释;例如:

  • \\(转义反斜杠)
  • \[(转义方括号)
  • \{(转义大括号)
  • \.(转义句点)