以下示例介绍了如何使用和构造简单的正则表达式。每个示例都包含要匹配的文本类型、用于匹配该文本的一个或几个正则表达式,以及一些注释(说明特殊字符和格式的使用方法)。
重要说明:我们仅支持 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 匹配字母、数字或下划线以外的任何字符。它不允许 regex 匹配短语前后的字符。
- 在示例 2 中,\s 匹配空格字符,{0,3} 表示字词 stock 和 tip 之间可以出现 0-3 个空格。
- ^ 匹配新行的行首,允许 regex 匹配出现在行首的短语(该短语前无其他字符)。
- $ 匹配行尾,允许正则表达式匹配出现在行尾的短语(该短语后无其他字符)。
- 在示例 3 中,(s) 匹配字母 s,{0,1} 表示该字母可以在字词 tip 后出现 0 次或 1 次。所以,该正则表达式会匹配 stock tip 和 stock tips。另外,您还可以使用字符 ? 来替代 {0,1}
|
匹配列表中的字词或短语 |
用法示例 |
匹配以下列表中的任意字词或短语:
- baloney
- darn
- drat
- fooey
- gosh darnit
- heck
|
正则表达式示例 |
(?i)(\W|^)(baloney|darn|drat|fooey|gosh\sdarnit|heck)(\W|$) |
注释 |
|
匹配包含不同拼写或特殊字符的字词 |
用法示例
|
匹配字词“fast cash”和垃圾内容发布者使用的某些内容,例如:
- f@st c@sh
- f@$t c@$h
- fa$t ca$h
|
Regex 示例 |
f[a4@][s5\$][t7] +c[a4@][s5\$]h
|
注释 |
- 未添加 \W,因此 fast cash 的任何变体前后都可能出现其他字符。例如,该正则表达式仍匹配以下文本中的 fast cash:
Fast cash!! 或 ***f@st ca$h***
- [a4@] 匹配单词中第二个字符位置的字符 a、4 或 @,反映垃圾内容发布者用于规避简单文本匹配的常见字母替换方式。
|
匹配某个特定网域的所有电子邮件地址 |
用法示例 |
匹配来自网域 yahoo.com、hotmail.com 和 gmail.com 的任何电子邮件地址。 |
Regex 示例 |
(\W|^)[\w.\-]{0,25}@(yahoo|hotmail|gmail)\.com(\W|$) |
注释 |
- \W 匹配字母、数字或下划线以外的任何字符。它不允许 regex 匹配电子邮件地址前后的字符。
- ^ 匹配新行的行首,允许 regex 匹配出现在行首的地址(该地址前无其他字符)。
- $ 匹配行尾,允许正则表达式匹配出现在行尾的地址(该地址后无其他字符)。
- [\w.\-] 匹配所有字词字符(a-z、A-Z、0-9 或下划线)、句号或连字符。这些是电子邮件地址的第一部分中所包含的最常用有效字符。\-(代表连字符)必须在方括号内字符列表的最后出现。
- 短划线和句号前的 \ 用于“去除”这些字符,即表示短划线和句号本身不是正则表达式的特殊字符。方括号中不需要去除句号。
- {0,25} 代表可以在 @ 符号之前出现的前字符集中的字符数,范围从 0-25。内容合规性电子邮件设置最多可以对正则表达式中的每个字符集匹配 25 个字符。
- (…) 格式对网域进行分组,分隔网域的 | 字符代表“或”。
|
匹配某个范围内的所有 IP 地址 |
用法示例 |
匹配范围 192.168.1.0 到 192.168.1.255 之间的所有 IP 地址。 |
Regex 示例 |
示例 1:192\.168\.1\.
示例 2:192\.168\.1\.\d{1,3} |
注释 |
- 每个句号前的 \ 用于“去除”句号,即表示句号本身不是正则表达式的特殊字符。
- 在示例 1 中,最后一个句号之后没有其他字符,所以,正则表达式匹配以 192.168.1. 开头的所有 IP 地址,无论后面出现什么数字。
- 在示例 2 中,\d 会匹配最后一个句号之后从 0 到 9 的所有数字,{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
|
Regex 示例 |
(\W|^)po[#\-]{0,1}\s{0,1}\d{2}[\s-]{0,1}\d{4}(\W|$) |
注释 |
- \W 匹配字母、数字或下划线以外的任何字符。它不允许 regex 匹配编号前后的字符。
- ^ 匹配新行的行首,允许 regex 匹配出现在行首的编号(该编号前无其他字符)。
- $ 匹配行尾,允许正则表达式匹配出现在行尾的编号(该编号后无其他字符)。
- [#\-] 匹配字母 po 后的井号或连字符,{0,1} 表示这些字符中每个字符可以出现 0 次或 1 次。\-(代表连字符)必须在方括号内字符列表的最后出现。
- \s 匹配空格,{0,1} 表示空格可出现 0 次或 1 次。
- \d 匹配从 0-9 的任意数字,{2} 表示在编号的这一位置必须正好出现 2 位数字。
|