当前位置: 首页 > news >正文

影刀RPA进阶教程_正则表达式在自动化中的实用速查

影刀RPA进阶教程:正则表达式在自动化中的实用速查

正则表达式是自动化里最"性价比高"的技能之一。

不会正则的时候,提取一个价格要写十几行代码,各种 split、replace、找位置。会正则之后,一行代码搞定。

我不是程序员出身,正则也是边用边学的。这篇文章不讲底层原理,只讲自动化里最常用的 6 个场景,每个场景一个现成的正则,复制就能用。


一、影刀里怎么用正则

两种方式:

方式1:影刀内置的"从文本提取"指令

支持正则模式,直接选即可。适合简单的提取场景。

方式2:Python 代码指令

店群矩阵自动化突破运营极限!


复杂场景用 Python 的re模块,更灵活。

Python代码:importre text="价格:¥128.00,已售 3200 件"# re.search: 找第一个匹配match=re.search(r'¥(\d+\.?\d*)',text)ifmatch:price=match.group(1)# "128.00"print(f"价格:{price}")# re.findall: 找所有匹配text2="a@x.com, b@y.com, c@z.com"emails=re.findall(r'[\w\.-]+@[\w\.-]+',text2)print(f"找到邮箱:{emails}")# ['a@x.com', 'b@y.com', 'c@z.com']# re.sub: 替换text3="价格: 128.00 元"clean=re.sub(r'\s+','',text3)# 去掉所有空白print(f"清洗后:{clean}")# "价格:128.00元"

二、6 个最常用场景 + 现成正则

场景1:提取价格

Python代码:importre# 常见价格格式: ¥128.00, ¥128, 128.00元, 128元, 12.8万texts=["¥128.00","¥99","35.8元","1.2万","¥1,299.00","券后69.9"]defextract_price(text):# 去掉¥、¥、逗号、空格text=text.replace("¥","").replace("¥","").replace(",","").replace(" ","")# 处理"万"if"万"intext:num=float(text.replace("万",""))returnnum*10000# 提取数字(含小数点)match=re.search(r'(\d+\.?\d*)',text)ifmatch:returnfloat(match.group(1))returnNonefortintexts:print(f"{t}->{extract_price(t)}")# 输出:# ¥128.00 -> 128.0# ¥99 -> 99.0# 35.8元 -> 35.8# 1.2万 -> 12000.0# ¥1,299.00 -> 1299.0# 券后69.9 -> 69.9

场景2:提取销量数字

Python代码:importre# 销量格式: "已售10万+", "3200人付款", "月销 5000+", "999+"texts=["已售10万+","3200人付款","月销 5000+","999+","2.3万+件"]defextract_sales(text):text=text.replace(",","")if"万"intext:match=re.search(r'(\d+\.?\d*)',text)ifmatch:returnint(float(match.group(1))*10000)match=re.search(r'(\d+)',text)ifmatch:returnint(match.group(1))return0fortintexts:print(f"{t}->{extract_sales(t)}")# 已售10万+ -> 100000# 3200人付款 -> 3200# 月销 5000+ -> 5000

场景3:提取手机号

Python代码:importre text="联系方式:13812345678,备用:15987654321"phones=re.findall(r'1[3-9]\d{9}',text)print(phones)# ['13812345678', '15987654321']

场景4:提取 URL

Python代码:importre text="详情页: https://item.taobao.com/item.htm?id=12345 图片: //img.alicdn.com/a.jpg"# 提取所有 URLurls=re.findall(r'https?://[^\s]+',text)# 也提取 //开头的protocol_urls=re.findall(r'//[^\s]+',text)print(urls)# ['https://item.taobao.com/item.htm?id=12345']print(protocol_urls)# ['//img.alicdn.com/a.jpg']

场景5:清洗 HTML 标签

Python代码:importre text='<span class="price">¥128.00</span><em>包邮</em>'# 去掉所有HTML标签clean=re.sub(r'<[^>]+>','',text)print(clean)# "¥128.00包邮"# 去掉所有空白字符(空格、换行、tab)clean2=re.sub(r'\s+','',clean)print(clean2)# "¥128.00包邮"

场景6:提取括号/中括号内的内容

Python代码:importre text="连衣裙(2026夏季新款)[已售罄]"# 提取中文括号内容cn_bracket=re.search(r'((.+?))',text)ifcn_bracket:print(cn_bracket.group(1))# "2026夏季新款"# 提取英文括号内容en_bracket=re.search(r'\((.+?)\)',text)# 提取中括号内容sq_bracket=re.search(r'\[(.+?)\]',text)ifsq_bracket:print(sq_bracket.group(1))# "已售罄"

三、正则新手最容易犯的 3 个错误

错误1:忘记转义特殊字符

temu店群自动化报活动案例

.*+?[](){}在正则里有特殊含义。如果要匹配这些字符本身,前面加\

# 错误: 想匹配 ¥128.00 中的点号re.search(r'128.00',text)# . 匹配任意字符!会匹配到 128-00, 128x00 等# 正确re.search(r'128\.00',text)# \. 才匹配真正的点号

错误2:贪婪匹配 vs 非贪婪匹配

text="<div>内容1</div><div>内容2</div>"# 贪婪匹配(默认):尽可能多地匹配re.findall(r'<div>(.*)</div>',text)# 结果: ['内容1</div><div>内容2'] ← 不是你想要的!# 非贪婪匹配:尽可能少地匹配re.findall(r'<div>(.*?)</div>',text)# 结果: ['内容1', '内容2'] ← 这才是对的

.*换成.*?,这个问题就能避免。

错误3:没有处理 None

# 不好match=re.search(r'¥(\d+)',text)price=match.group(1)# 如果没匹配到,match 是 None,报错!# 好match=re.search(r'¥(\d+)',text)price=match.group(1)ifmatchelse"未找到"

四、推荐的正则测试工具

写正则不要凭感觉,一定要测试。推荐两个免费工具:

  • regex101.com(网页版):最专业的正则测试工具,会解释每一步匹配逻辑
  • Python 内置测试:在影刀的 Python 代码指令里直接测试,改动后立刻跑一下看结果

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

http://www.rkmt.cn/news/1502962.html

相关文章:

  • 避开硬件I2C的坑:用GPIO模拟驱动TM1650点亮你的ARM开发板数码管
  • 手把手教你用Qwen3-VL微调实现精准图文指代定位
  • PUBG雷达系统:5分钟搭建终极战场可视化工具
  • gRPC 1.81.1 版本发布:多语言多方面改进与错误修复
  • Flutter同声传译APP+Flask封装SeamlessM4T语音翻译服务工程包
  • Windows 64位OMPL C++静态库集成包(含头文件、pkgconfig与CMake支持)
  • Blender 3MF插件:从创意到3D打印的终极桥梁
  • 前端错误监控与异常边界:从全局捕获到组件级降级的工程实践
  • SAS本地开发加速包:一键启动脚本+真实测试数据+高频问题PDF指南+Lua/Excel辅助工具
  • 2026实测测评|内蒙古骑马哪里好玩 - 舒雯文化
  • AI Native 竞争力:真正稀缺的不是会用 AI,而是把事往前推的人
  • 国内空气悬浮离心鼓风机主流品牌实测排行盘点 - 奔跑123
  • 2026 潍坊厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 手把手教你用STM32搞定DS18B20多传感器轮询(附完整代码)
  • 多模态图学习:PLANET框架解析与实践指南
  • 如何快速掌握AI漫画翻译:5个高效技巧完整指南
  • 动量增强注意力机制:提升Transformer长序列处理能力
  • 从零搭建一个简易嵌入式软件仿真环境:用C语言实践软考那些核心概念
  • STM32F103C8T6 + HX711 + 0.96寸OLED:手把手教你做一个桌面电子秤(附完整代码)
  • 如何使用PaintbrushJS构建在线图片编辑器:完整项目实战
  • 3步掌握DeepLabCut:无标记姿态估计从入门到精通 [特殊字符]
  • 2026年昭通市最具性价比 黄金回收白银回收铂金回收店铺实力排行榜TOP5;彩金+金条+银条首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • 用Python模拟智能RGV调度:从数学建模到代码实战(附完整源码)
  • FPGA网络通信避坑指南:如何为你的Kintex-7和88E1111 PHY选择并配置正确的GT高速收发器模式?
  • 数据的加密与解密(08:54)
  • MagicCFG深度解析:纯Swift打造的iOS设备系统配置终极武器
  • 2026学生降AI率工具盘点:省时省力+高分适配哪家强?
  • 终极指南:如何用Ice彻底改造你的macOS菜单栏使用体验
  • 2026重庆黄金回收TOP5实力榜单|收的顶五星榜首,主城变现闭眼选 - 奢侈品回收测评
  • 数据的加密与解密(08:49)