跳转到内容

编写正则表达式

TextGO 可通过正则表达式匹配结构明确、规则清晰的文本。

什么是正则表达式

正则表达式(Regular Expression)使用特定语法描述文本的结构和模式。

何时使用正则表达式

适合使用正则的场景

结构明确的文本

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

需要确定性匹配

  • 格式定义严格的业务数据
  • 需要精确验证的输入

模式简单清晰

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

不适合使用正则的场景

模糊或复杂的模式

  • 需要理解上下文语义
  • 变化过多,难以穷举

需要学习的模式

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

创建正则表达式

步骤 1:进入正则管理

  1. 打开“设置”>“正则表达式”
  2. 点击“+”按钮添加正则表达式

步骤 2:基本信息

类型名称(必填)

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

类型图标(可选)

  • 点击当前类型图标打开图标选择窗口
  • 可选择“内置图标”或“上传自定义 SVG”

步骤 3:编写正则表达式

正则表达式(必填)

  • 输入用于匹配类型的正则表达式

匹配选项(可选)

  • i(不区分大小写):忽略大小写进行匹配
  • u(Unicode):使用完整 Unicode 进行匹配
  • m(多行模式):^$ 匹配每行的开头和结尾
  • s(单行模式):点号匹配换行符

TextGO 使用 JavaScript 正则表达式语义;模式匹配到选中文本的任意部分即视为匹配。如需匹配完整选中文本,请使用 ^$ 限定首尾。

TextGO 正则表达式编辑窗口

使用正则表达式

保存的正则表达式会出现在识别类型列表中:

  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 开源协议发布