极奇策RPA技术教程:正则批量替换 (NodeRegexReplace) - 自动化开发与配置详细指南

正则批量替换
📖 节点概述
使用正则表达式对文本执行批量查找与替换。支持多条正则规则(每行一条),每条规则由分隔符分成“正则表达式”和“替换文本”。提供常用的正则标志(忽略大小写、多行模式、点号匹配换行)。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 文本格式化:将多种日期格式统一(如
\d{4}-\d{1,2}-\d{1,2}→$1/$2/$3)。 - 数据清洗:移除 HTML 标签(
<[^>]+>→'')、多余空白字符(\s+→' ')。 - 敏感信息脱敏:将手机号中间四位替换为
****((\d{3})\d{4}(\d{4})→$1****$2)。 - 代码生成:批量修改变量命名风格(如驼峰转下划线)。
- 日志解析:提取并重组日志行中的字段顺序。
🎮 实战连线指南:如何正确使用它?
节点有三个输入端口:原文本、替换规则、分隔符,以及三个高级选项(正则标志)。输出端口 结果。
场景案例:将文本中的所有数字替换为 [数字]
准备原文:从【变量获取】读取
content = "订单号 10086,金额 299.00 元"。设置替换规则(多行文本):
\d+(?:\.\d+)? [数字]说明:匹配整数或小数,替换为
[数字]。分隔符:默认空格(规则中正则和替换文本之间用空格分隔)。
获取结果:
结果输出"订单号 [数字],金额 [数字] 元"。
反向引用示例:将 yyyy-mm-dd 格式转换为 dd/mm/yyyy
- 正则:
(\d{4})-(\d{1,2})-(\d{1,2}) - 替换:
$3/$2/$1 - 原文:
2025-01-15→15/01/2025
高级标志组合:
- 忽略大小写:使正则中的字母匹配不区分大小写。
- 多行模式:
^和$匹配每行的开始和结束(而非整个字符串)。 - 点号匹配换行:
.可以匹配换行符\n。
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 原文本 | STRING | 待处理的原始文本。可通过多行文本框填写或连线传入。 |
| 替换规则 | STRING | 正则替换规则列表,每行一条。格式:正则表达式 替换文本,正则与替换之间的分隔符由“分隔符”参数指定。 |
| 分隔符 | STRING | 用于分割每条规则中“正则”与“替换文本”的字符串。支持转义序列(如\n、\t)。默认为空格 。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 原文本 | 多行文本框 | 手动输入原始文本。连线时优先使用连线值。 |
| 替换规则 | 多行文本框 | 手动输入正则替换规则(每行一条)。 |
| 分隔符 | 单行文本框 | 手动输入分隔符(默认空格)。 |
| 忽略大小写 (i) | 复选框(高级) | 对应正则标志re.IGNORECASE。 |
| 多行模式 (m) | 复选框(高级) | 对应re.MULTILINE。 |
| 点号匹配换行 (s) | 复选框(高级) | 对应re.DOTALL。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 结果 | STRING | 应用所有正则替换规则后得到的新字符串。 |
🔧 替换顺序与规则解析
- 规则按从上到下的顺序依次应用于文本(前一条规则的结果会成为下一条规则的输入)。
- 每条规则按分隔符拆分成两部分:正则表达式 和 替换文本。如果一行中包含多个分隔符,仅拆分第一个分隔符(因为替换文本中可能包含分隔符本身)。
- 替换文本中可以使用反向引用:
$1、$2等引用正则捕获组的内容;$0或$&表示整个匹配。 - 如果正则表达式编译错误,该条规则会被跳过。
⚠️ 注意事项
- 转义字符:在正则表达式或替换文本中如需字面反斜杠,需要写
\\(因为节点内部会先解析一次转义)。建议在规则中使用原始字符串形式(但这里只能手动双写)。 - 分隔符选择:建议使用正则表达式中不会出现的字符作为分隔符(如
|、\t)。如果使用空格,则正则表达式本身不能包含空格(除非用\s或[ ]匹配)。 - 性能:正则替换对于大文本和复杂正则可能开销较大。避免在循环中反复执行。
- 标志位作用:标志位应用于所有规则。如果需要不同规则使用不同标志,请分多次使用本节点或使用多个节点串联。
- 空规则:如果替换规则为空,原文本保持不变。
💎 小贴士:
- 使用
(?:...)可以创建非捕获分组,避免影响反向引用编号。- 替换文本中的
\1等价于$1,但推荐使用$1以免与转义混淆。- 如果需要删除匹配的内容,将替换文本设为空字符串。
- 结合【字符串长度】或【截取字符串】节点,可以进一步处理替换后的结果。
- 该节点与【批量替换字符串】的区别在于:本节点使用正则表达式,匹配能力更强;后者使用普通文本,但更简单安全。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

