点 (.) 和反斜杠 (\)

一些字符在正则表达式中具有一种含义,在其他语境下则具有另外一种完全不同的含义。例如,在正则表达式中,点 (.) 是一种特殊字符,用来匹配任一字符。在书写语言中,句点 (.) 用来表示句子的结束。在数学中,小数点 (.) 用来分隔数字的整数部分和小数部分。

正则表达式会先评估某个特殊字符在正则表达式语境下的含义:如果是点,正则表达式就会匹配任一字符。

比如,正则表达式 1. 可以匹配:

  • 11
  • 1A

正则表达式 1.1 可以匹配:

  • 111
  • 1A1

如果您能使用正则表达式来表示 IP 地址,那么就会取得出乎意料的效果。例如,正则表达式 0.0.0.0 可以匹配:

  • 0102030
  • 0a0b0c0

为了告诉正则表达式将原语境中的点看做 IP 地址各部分之间的分隔符,而不是用于匹配任一其他字符的特殊字符,您需要使用相应的标记,即反斜杠 (\)。当正则表达式遇到反斜杠时,就会从字面上解释后面的字符。用来匹配 IP 地址 0.0.0.0 的正则表达式应为:

0\.0\.0\.0

对任一特殊字符使用反斜杠,即可对其转义并使之按字面解释,例如:

  • \\(对反斜杠转义)
  • \[(对中括号转义)
  • \{(对花括号转义)
  • \.(对点转义)

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
Google 应用
主菜单
10507708608024205658