跳转到内容

编写正则表达式

除了机器学习模型,TextGO 还支持使用正则表达式来精确匹配文本模式。正则表达式适合匹配结构明确、规则清晰的文本类型。

什么是正则表达式

正则表达式(Regular Expression)是一种用于匹配字符串模式的强大工具。它使用特殊的语法来描述文本的结构和特征。

何时使用正则表达式

适合使用正则的场景

结构明确的文本

  • 包括电话号码、身份证号、邮政编码等
  • 特定格式的编号或代码
  • 固定格式的日期、时间

需要 100% 准确率

  • 金融、医疗等关键业务领域
  • 需要严格验证的场景

模式简单清晰

  • 可以用简单规则描述的情况
  • 变化范围有限且可控

不适合使用正则的场景

模糊或复杂的模式

  • 需要理解上下文语义
  • 变化多样、难以穷举所有情况

需要学习的模式

  • 没有明确固定的规则
  • 需要从大量样本中学习特征

创建正则表达式

步骤 1:进入正则管理

  1. 打开"设置" > "正则表达式"
  2. 点击"+"号添加新正则

步骤 2:基本信息

正则名称(必填)

  • 用于标识正则表达式
  • 建议使用描述性的名称

正则图标(可选)

  • 点击图标选择器选择图标
  • 支持内置图标库
  • 支持上传自定义 SVG 图标

步骤 3:编写正则表达式

正则模式(必填)

  • 输入正则表达式模式

匹配标志(可选)

  • i:忽略大小写进行匹配
  • u:使用完整 Unicode 进行匹配
  • m:^ 和 $ 匹配每行的开头和结尾
  • s:点号匹配换行符

使用正则表达式

创建好的正则表达式会自动出现在识别类型列表中:

  1. 打开"快捷键设置"
  2. 添加一条新规则
  3. 在"识别类型"中选择你创建的正则表达式
  4. 配置相应的执行动作并保存

正则表达式语法

基础语法

字符匹配

语法说明示例
.匹配任意单个字符a.c 匹配 abca1c
\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* 匹配 aababb
+1 次或多次ab+ 匹配 ababb
?0 次或 1 次ab? 匹配 aab
{n}恰好 n 次a{3} 匹配 aaa
{n,}至少 n 次a{2,} 匹配 aaaaa
{n,m}n 到 m 次a{2,4} 匹配 aaaaaaaaa

位置匹配

语法说明示例
^字符串开头^hello 必须以 hello 开头
$字符串结尾world$ 必须以 world 结尾
\b单词边界\bword\b 匹配完整单词
\B非单词边界\Bword 单词内部的 word

分组和选择

语法说明示例
(abc)分组(ab)+ 匹配 ababab
a|ba 或 bcat|dog 匹配 cat 或 dog
(?:abc)非捕获分组(?:ab)+ 匹配但不捕获

转义字符

语法说明
\.字面量点号
\*字面量星号
\\字面量反斜杠
\[字面量左方括号
\(字面量左括号

基于 GPLv3 开源协议发布