什么是 Regex?
正则表达式(regex)是定义搜索模式的字符序列。它们在查找、匹配和处理文本方面非常强大。
基本字符
| 模式 | 描述 | 示例 |
|---|
| . | 除换行符外的任意字符 | a.c 匹配 "abc"、"a1c" |
| \d | 任意数字 (0-9) | \d\d 匹配 "42" |
| \D | 任意非数字 | \D+ 匹配 "abc" |
| \w | 单词字符 (a-z, A-Z, 0-9, _) | \w+ 匹配 "hello_123" |
| \W | 非单词字符 | \W 匹配 "@"、"#" |
| \s | 空白字符(空格、制表符、换行符) | \s+ 匹配 " " |
| \S | 非空白字符 | \S+ 匹配 "hello" |
量词
| 模式 | 描述 | 示例 |
|---|
| * | 0 次或更多 | ab*c 匹配 "ac"、"abc"、"abbc" |
| + | 1 次或更多 | ab+c 匹配 "abc"、"abbc" |
| ? | 0 次或 1 次(可选) | colou?r 匹配 "color"、"colour" |
| {n} | 恰好 n 次 | \d{4} 匹配 "2025" |
| {n,} | n 次或更多 | \d{2,} 匹配 "42"、"123" |
| {n,m} | n 到 m 次 | \d{2,4} 匹配 "42"、"123"、"2025" |
锚点
| 模式 | 描述 | 示例 |
|---|
| ^ | 字符串/行的开头 | ^你好 匹配 "你好世界" |
| $ | 字符串/行的结尾 | 世界$ 匹配 "你好世界" |
| \b | 单词边界 | \bcat\b 匹配 "cat" 不匹配 "category" |
| \B | 非单词边界 | \Bcat 匹配 "category" |
字符类
| 模式 | 描述 | 示例 |
|---|
| [abc] | 匹配 a、b 或 c 中的任意一个 | [aeiou] 匹配元音字母 |
| [^abc] | 匹配除 a、b、c 外的任意字符 | [^0-9] 匹配非数字 |
| [a-z] | 范围:任意小写字母 | [a-zA-Z] 任意字母 |
| [0-9] | 范围:任意数字 | [0-9]+ 匹配数字 |
分组和选择
| 模式 | 描述 | 示例 |
|---|
| (abc) | 捕获组 | (\d+)-(\d+) 捕获两个数字 |
| (?:abc) | 非捕获组 | (?:https?://) 分组但不捕获 |
| a|b | 选择(或) | 猫|狗 匹配任意一个 |
| \1 | 引用第 1 组 | (\w)\1 匹配 "aa"、"bb" |
常用模式
电子邮件地址
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
URL
https?://[\w.-]+(?:/[\w./-]*)?
电话号码(中国)
\+?86?[-.\s]?1[3-9]\d{9}
日期 (YYYY-MM-DD)
\d{4}-\d{2}-\d{2}
IP 地址 (IPv4)
\b(?:\d{1,3}\.){3}\d{1,3}\b
身份证号码
\d{17}[\dXx]
标志
| 标志 | 描述 |
|---|
| i | 不区分大小写搜索 |
| g | 全局 - 查找所有匹配项 |
| m | 多行 - ^ 和 $ 匹配行首/行尾 |
| s | Dotall - . 也匹配换行符 |
使用 Regex Data Extractor 的技巧
- 从简单开始,逐步增加复杂性
- 使用预览功能测试您的模式
- 当您想要字面匹配特殊字符时,使用反斜杠转义
- 必要时使用非贪婪量词(
*?、+?) - 使用边界情况进行测试,确保模式正常工作
使用 Regex Data Extractor,您可以直接在任何网页上应用这些模式,并精确提取您需要的数据。祝您提取顺利!