当前位置: 首页 > 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.jsqmd.com/news/991213/

相关文章:

  • C++学习笔记系列2-5
  • 黄金回收全攻略 品类价格流程一文看懂 - 润富黄金回收
  • 2026 德州厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 元宝 LeetCode 3139. 使数组中所有元素相等的最小开销 Java实现
  • 鸿研服务器专业供应商评价与2026年中推荐 - 品牌推荐大师
  • 避开硬件I2C的坑:用GPIO模拟驱动TM1650点亮你的ARM开发板数码管
  • uni-app跨端开发优缺点深度解析:2026企业项目选型指南
  • 计算机视觉算法工程师技术成长完整指南:从零到精通的7步实战手册
  • Lapce远程SSH连接性能调优实战指南:解决文件夹无响应问题深度解析
  • PrometheusAlert分布式告警路由架构:构建企业级智能消息分发系统
  • 智能游戏助手:一键提升英雄联盟体验的完整指南
  • 手把手教你用Qwen3-VL微调实现精准图文指代定位
  • Overskride:终极 Linux 蓝牙客户端 - 10个高效管理蓝牙设备的技巧
  • PUBG雷达系统:5分钟搭建终极战场可视化工具
  • 大模型对就业结构的影响分析
  • gRPC 1.81.1 版本发布:多语言多方面改进与错误修复
  • 天津无缝钢管厂家实力排行:核心资质与交付能力对比 - 奔跑123
  • 2026最新黄金回收价格行情分析 - 润富黄金回收
  • 扫地机器人公司推首款美庭专用割草机,融合双导航技术售价 1299 美元!
  • 2026年6月10日黄金回收行情分析 - 润富黄金回收
  • Flutter同声传译APP+Flask封装SeamlessM4T语音翻译服务工程包
  • GAD-MoRE:零样本图异常检测的混合黎曼专家框架
  • 亚马逊 Echo 音箱推“睡眠工作室”:结合多平台内容,让孩子轻松入睡!
  • Windows 64位OMPL C++静态库集成包(含头文件、pkgconfig与CMake支持)
  • 黄金回收行业科普大全 - 润富黄金回收
  • Blender 3MF插件:从创意到3D打印的终极桥梁
  • 3个步骤解锁Mobaxterm中文版:一站式远程管理工具完全指南
  • 2026 威海厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 恒美智造与美国CEM微波化学反应器 微波萃取仪全方位品牌对比 - 专业仪器测评品牌推荐
  • 前端错误监控与异常边界:从全局捕获到组件级降级的工程实践