影刀RPA进阶教程_正则表达式10个必会模式让文本提取精准无误
2026/6/15 13:23:55 网站建设 项目流程

影刀RPA进阶教程:正则表达式10个必会模式——让文本提取精准无误

影刀RPA正则表达式是文本处理的瑞士军刀。网页抓到的数据里混着空格、换行、标签,用内置方法怎么拆都拆不干净——一行正则就搞定。这篇文章给你10个影刀实战中最常用的正则模式,直接复制用。

作者:林焱 | 影刀RPA进阶系列


为什么需要正则

影刀内置的文本处理指令(分割、替换、截取)足够简单场景用,但碰到这些情况就吃力了:

  • 从"价格:¥129.00(含税)"里只取数字 129.00
  • 从 HTML 标签里提取纯文本
  • 验证手机号/邮箱格式
  • 批量替换多种字符(同时去空格、去逗号、去换行)

正则一行代码解决以上全部问题。


影刀里怎么用正则

两种方式:

方式一:用 Python 执行代码(推荐,功能最全)

importre text="价格:¥129.00"result=re.search(r'(\d+\.\d{2})',text)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4980cf22accd4e43bc9e2538a1b0c486.png#pic_center)ifresult:price=result.group(1)# "129.00"

方式二:用影刀内置的「文本匹配」指令

传入正则表达式和文本,输出匹配结果。简单场景够用,复杂场景推荐 Python。


拼多多店群自动化上架方案

模式1:提取价格(最常见)

importre text="原价:¥258.90,促销价:¥199.00"prices=re.findall(r'(\d+\.\d{2})',text)# 输出:['258.90', '199.00']# 如果价格格式不统一(有"12.9"或"129")prices=re.findall(r'(\d+\.?\d{0,2})',text)

模式2:提取中文内容

text="商品名称:Apple iPhone 15 256GB 黑色"# 只提取中文部分chinese=re.findall(r'[\u4e00-\u9fff]+',text)# 输出:['商品名称', '黑色']

模式3:验证手机号

phone="13812345678"pattern=r'^1[3-9]\d{9}$'ifre.match(pattern,phone):print("手机号格式正确")else:print("手机号格式错误")

模式4:验证邮箱

email="test@example.cn"pattern=r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'ifre.match(pattern,email):![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9bf4625d18344cb7856d6a45056e9a9a.png#pic_center)print("邮箱格式正确")

模式5:提取 URL

text="详情页:https://item.xx.com/12345.html 来源:淘宝"urls=re.findall(r'https?://[^\s]+',text)# 输出:['https://item.xx.com/12345.html']

模式6:从 HTML 标签里提取纯文本

importre html='<div class="title">iPhone 15 Pro Max</div>'# 去掉所有 HTML 标签clean=re.sub(r'<[^>]+>','',html)# 输出:iPhone 15 Pro Max

模式7:按多个分隔符拆分文本

text="商品A|商品B,商品C;商品D、商品E"# 按 | , ; 、 拆分items=re.split(r'[|,;、]',text)# 输出:['商品A', '商品B', '商品C', '商品D', '商品E']

模式8:提取日期

text="订单日期:2026-06-11,发货日期:20260612"# 匹配 YYYY-MM-DD 格式dates=re.findall(r'\d{4}-\d{2}-\d{2}',text)# 输出:['2026-06-11']# 同时匹配多种日期格式dates=re.findall(r'\d{4}[-/]\d{2}[-/]\d{2}',text)# 匹配 2026-06-11 和 2026/06/11

模式9:清理空白字符

text=" 商品名称\n\t iPhone 15 \n"# 清理开头结尾空白clean=text.strip()# 清理所有类型空白(空格、换行、制表符)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8451da1050f34d15b6342b95e871f976.png#pic_center)clean=re.sub(r'\s+',' ',text).strip()# 输出:商品名称 iPhone 15

模式10:提取特定格式的ID

text="订单号:DD2026061100523,退款单号:TK2026061100892"# 提取"DD开头+数字"的订单号order_ids=re.findall(r'DD\d{13}',text)# 输出:['DD2026061100523']# 通用写法:提取所有大写字母+数字的IDall_ids=re.findall(r'[A-Z]{2}\d{13}',text)# 输出:['DD2026061100523', 'TK2026061100892']

正则速查表(贴墙上那种)

TEMU店群如何管理运营?

符号含义示例
.匹配任意字符(换行除外)a.c匹配"abc"、“a1c”
\d数字(0-9)\d{3}匹配3位数字
\w字母数字下划线\w+匹配单词
\s空白字符\s+匹配连续空白
*0次或多次a*匹配""、“a”、“aa”
+1次或多次a+匹配"a"、“aa”
?0次或1次colou?r匹配"color"和"colour"
{n}恰好n次\d{4}匹配4位数字
{n,m}n到m次\d{2,4}匹配2-4位数字
[]字符集[aeiou]匹配任意元音
[^]排除字符集[^0-9]匹配非数字
()捕获组(\d+)\.(\d+)分两部分捕获
^开头^商品匹配以"商品"开头
$结尾元$匹配以"元"结尾
\u4e00-\u9fff中文字符匹配所有汉字

3个易错提醒

1. 贪婪匹配 vs 非贪婪匹配

text="<div>A</div><div>B</div>"# 贪婪(默认):匹配尽可能多re.findall(r'<div>.*</div>',text)# 结果:['<div>A</div><div>B</div>'] ← 把两个div都包进去了# 非贪婪:匹配尽可能少re.findall(r'<div>.*?</div>',text)# 结果:['<div>A</div>', '<div>B</div>'] ← 正确!

加个?就变成非贪婪模式。

2. 别忘了转义特殊字符

需要匹配字面上的.(时,必须加反斜杠:\.\(\$

# 错误:. 匹配了任意字符re.findall(r'129.00',"129x00")# 也会匹配# 正确:\. 只匹配句点![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/825d792621cf483ca64e14bc7d709c15.png#pic_center)re.findall(r'129\.00',"129.00")# 严格匹配

3. 在影刀的「文本匹配」里用正则,换行符不会自动匹配

影刀内置的文本匹配默认是单行模式,.*不匹配换行。如果用 Pythonre.search(),加re.DOTALL标志:

re.search(r'商品名:(.*)价格',text,re.DOTALL)

小结

这10个模式覆盖了影刀日常 90% 的文本处理需求。建议收藏这张速查表,碰到文本提取问题先看有没有现成的模式能用,比从头写快得多。

正则不用背,需要时复制改参数就行。


内容标签:影刀RPA / 正则表达式 / 文本处理 / Python re / 数据清洗

作者:林焱

本文是「影刀RPA从零到实战」系列文章之一,持续更新实操技巧与避坑经验。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询