编写正则表达式
除了机器学习模型,TextGO 还支持使用正则表达式来精确匹配文本模式。正则表达式适合匹配结构明确、规则清晰的文本类型。
什么是正则表达式
正则表达式(Regular Expression)是一种用于匹配字符串模式的强大工具。它使用特殊的语法来描述文本的结构和特征。
何时使用正则表达式
适合使用正则的场景
✅ 结构明确的文本
- 包括电话号码、身份证号、邮政编码等
- 特定格式的编号或代码
- 固定格式的日期、时间
✅ 需要 100% 准确率
- 金融、医疗等关键业务领域
- 需要严格验证的场景
✅ 模式简单清晰
- 可以用简单规则描述的情况
- 变化范围有限且可控
不适合使用正则的场景
❌ 模糊或复杂的模式
- 需要理解上下文语义
- 变化多样、难以穷举所有情况
❌ 需要学习的模式
- 没有明确固定的规则
- 需要从大量样本中学习特征
创建正则表达式
步骤 1:进入正则管理
- 打开"设置" > "正则表达式"
- 点击"+"号添加新正则
步骤 2:基本信息
正则名称(必填)
- 用于标识正则表达式
- 建议使用描述性的名称
正则图标(可选)
- 点击图标选择器选择图标
- 支持内置图标库
- 支持上传自定义 SVG 图标
步骤 3:编写正则表达式
正则模式(必填)
- 输入正则表达式模式
匹配标志(可选)
i:忽略大小写进行匹配u:使用完整 Unicode 进行匹配m:^ 和 $ 匹配每行的开头和结尾s:点号匹配换行符
使用正则表达式
创建好的正则表达式会自动出现在识别类型列表中:
- 打开"快捷键设置"
- 添加一条新规则
- 在"识别类型"中选择你创建的正则表达式
- 配置相应的执行动作并保存
正则表达式语法
基础语法
字符匹配
| 语法 | 说明 | 示例 |
|---|---|---|
. | 匹配任意单个字符 | a.c 匹配 abc、a1c |
\d | 匹配数字 (0-9) | \d{3} 匹配 123 |
\D | 匹配非数字 | \D+ 匹配 abc |
\w | 匹配字母、数字、下划线 | \w+ 匹配 hello_123 |
\W | 匹配非单词字符 | \W+ 匹配 @#$ |
\s | 匹配空白字符 | \s+ 匹配空格、制表符 |
\S | 匹配非空白字符 | \S+ 匹配 hello |
[abc] | 匹配 a 或 b 或 c | [0-9] 匹配任意数字 |
[^abc] | 不匹配 a、b、c | [^0-9] 匹配非数字 |
数量匹配
| 语法 | 说明 | 示例 |
|---|---|---|
* | 0 次或多次 | ab* 匹配 a、ab、abb |
+ | 1 次或多次 | ab+ 匹配 ab、abb |
? | 0 次或 1 次 | ab? 匹配 a、ab |
{n} | 恰好 n 次 | a{3} 匹配 aaa |
{n,} | 至少 n 次 | a{2,} 匹配 aa、aaa |
{n,m} | n 到 m 次 | a{2,4} 匹配 aa、aaa、aaaa |
位置匹配
| 语法 | 说明 | 示例 |
|---|---|---|
^ | 字符串开头 | ^hello 必须以 hello 开头 |
$ | 字符串结尾 | world$ 必须以 world 结尾 |
\b | 单词边界 | \bword\b 匹配完整单词 |
\B | 非单词边界 | \Bword 单词内部的 word |
分组和选择
| 语法 | 说明 | 示例 |
|---|---|---|
(abc) | 分组 | (ab)+ 匹配 ab、abab |
a|b | a 或 b | cat|dog 匹配 cat 或 dog |
(?:abc) | 非捕获分组 | (?:ab)+ 匹配但不捕获 |
转义字符
| 语法 | 说明 |
|---|---|
\. | 字面量点号 |
\* | 字面量星号 |
\\ | 字面量反斜杠 |
\[ | 字面量左方括号 |
\( | 字面量左括号 |