点 (.) 和反斜杠 ()

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

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

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

  • 11
  • 1A

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

  • 111
  • 1A1

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

  • 0102030
  • 0a0b0c0

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

0\.0\.0\.0

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

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