正则表达式示例

以下示例介绍了如何使用和构造简单的正则表达式。每个示例都包含要匹配的文本类型、用于匹配该文本的一个或多个正则表达式,以及一些注释(说明特殊字符和格式的使用方法)。

如需更多说明和指南,另请参阅正则表达式使用准则RE2 语法。另请参阅设置内容合规性规则

重要提示:我们仅支持 RE2 语法,这一语法与 PCRE 略有不同。默认情况下,正则表达式区分大小写。

仅匹配精确短语

仅匹配精确短语
使用示例 匹配词组 stock tips
正则表达式示例 示例 1: (\W|^)stock\stips(\W|$)

示例 2: (\W|^)stock\s{0,3}tips(\W|$)

示例 3: (\W|^)stock\s{0,3}tip(s){0,1}(\W|$)
备注
  • \W 匹配字母、数字或下划线以外的任何字符。防止正则表达式匹配短语之前或之后的字符。
  • 在示例 2 中,\s 匹配空格字符,{0,3} 表示字词 stocktip 之间可以出现 0 到 3 个空格。
  • ^ 匹配新一行的起始部分。允许正则表达式匹配出现在行首的短语(该短语前无其他字符)。
  • $ 匹配行尾,允许正则表达式匹配出现在行尾的短语(该短语后无其他字符)。
  • 在示例 3 中,(s) 匹配字母 s,{0,1} 表示该字母可以在字词 tip 后出现 0 次或 1 次。因此,该正则表达式会匹配 stock tipstock tips。或者,您也可以使用字符“?”来替代 {0,1}

匹配列表中的字词或短语

匹配列表中的字词或短语
使用示例 匹配以下列表中的任意字词或短语:
  • baloney
  • 该死的
  • drat
  • fooey
  • 该死
  • heck
正则表达式示例 (?i)(\W|^)(baloney|darn|drat|fooey|gosh\sdarnit|heck)(\W|$)
备注
  • (...) 会对所有字词分组,以便 \W 字符类可应用于括号内的所有字词。

  • (?i) 使匹配内容时不区分大小写。

  • \W 匹配字母、数字或下划线以外的任何字符。防止正则表达式匹配列表中的字词或短语之前或之后的字符。

  • ^ 匹配新一行的起始部分。允许正则表达式匹配出现在行首的字词(该字词前无其他字符)。

  • $ 匹配行尾,允许正则表达式匹配出现在行尾的字词(该字词后无其他字符)

  • | 代表“或”,因此,此正则表达式会匹配列表中的任意一个字词。

  • \s 匹配空格字符。使用此字符可分隔短语中的字词。

匹配包含不同拼写或特殊字符的字词

匹配包含不同拼写或特殊字符的字词

使用示例

匹配字词“fast cash”和垃圾内容发布者使用的某些内容,例如:
  • f@st c@sh
  • f@$t c@$h
  • fa$t ca$h
正则表达式示例

f[a4@][s5\$][t7] +c[a4@][s5\$]h

备注
  • 未添加 \W,因此 fast cash 的任何变体前后都可能出现其他字符。例如,该正则表达式仍匹配以下文本中的 fast cash

Fast cash!! 或 ***f@st ca$h***

  • [a4@] 匹配单词中第二个字符位置的字符 a、4 或 @,反映垃圾内容发布者用于规避简单文本匹配的常见字母替换方式。

匹配某个特定网域的所有电子邮件地址

匹配某个特定网域的所有电子邮件地址
使用示例 匹配来自 yahoo.comhotmail.comgmail.com 网域的任何电子邮件地址。
正则表达式示例 (\W|^)[\w.\-]{0,25}@(yahoo|hotmail|gmail)\.com(\W|$)
备注
  • \W 匹配字母、数字或下划线以外的任何字符。防止正则表达式匹配电子邮件地址之前或之后的字符。
  • ^ 匹配新一行的起始部分。允许正则表达式匹配出现在行开头的地址(该地址前无其他字符)。
  • $ 匹配行尾,允许正则表达式匹配出现在行尾的地址(该地址后无其他字符)。
  • [\w.\-] 匹配所有字词字符(a-z、A-Z、0-9 或下划线)、句号或连字符。这些是电子邮件地址的第一部分中最常用的有效字符。\-(代表连字符)必须在方括号内字符列表的最后出现。
  • 短划线和句号前的 \ 用于“去除”这些字符,即表示短划线和句号本身不是正则表达式的特殊字符。方括号中不需要去除句号。
  • {0,25} 代表可以在 @ 符号之前出现的前字符集中的字符数,范围从 0-25。内容合规性电子邮件设置最多可以对正则表达式中的每个字符集匹配 25 个字符。
  • (...) 格式对网域进行分组,分隔网域的 | 字符代表“或”。

匹配某个范围内的所有 IP 地址

匹配某个范围内的所有 IP 地址
使用示例 匹配 192.168.1.0192.168.1.255 范围内的任何 IP 地址。
正则表达式示例 示例 1:192\.168\.1\.
示例 2:192\.168\.1\.\d{1,3}
备注
  • 每个句号前的 \ 用于“去除”句号,即表示句号本身不是正则表达式的特殊字符。
  • 在示例 1 中,最后一个句点之后没有其他字符,因此正则表达式会匹配以 192.168.1. 开头的所有 IP 地址,无论后面出现什么数字。
  • 在示例 2 中,\d 会匹配最后一个句号之后从 09 的所有数字,{1,3} 表示最后一个句号之后可以出现 1 - 3 位数。在这种情况下,正则表达式匹配以 192.168.1. 开头的所有完整 IP 地址。该正则表达式还会匹配无效的 IP 地址,如 192.168.1.999

匹配字母数字格式

匹配字母数字格式
使用示例 匹配您公司的采购订单号。此编号可能有各种格式,例如:
  • PO nn-nnnnn
  • PO-nn-nnnn
  • PO# nn nnnn
  • PO#nn-nnnn
  • PO nnnnnn
正则表达式示例 (\W|^)po[#\-]{0,1}\s{0,1}\d{2}[\s-]{0,1}\d{4}(\W|$)
备注
  • \W 匹配字母、数字或下划线以外的任何字符。这样可防止正则表达式匹配数字之前或之后的字符。
  • ^ 匹配新一行的起始部分。允许正则表达式匹配出现在行首的编号(该编号前无其他字符)。
  • $ 匹配行尾,允许正则表达式匹配出现在行尾的编号(该编号后无其他字符)。
  • [#\-] 匹配字母 po 后的井号或连字符,{0,1} 表示这些字符中每个字符可以出现 0 次或 1 次。-(代表连字符)必须在方括号内字符列表的最后出现。
  • \s 匹配空格,{0,1} 表示空格可出现 0 次或 1 次。
  • \d 匹配从 0-9 的任意数字,{2} 表示在编号的这一位置必须正好出现 2 位数字。