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

影刀RPA进阶教程_正则表达式10个必会模式让文本提取精准无误 影刀RPA进阶教程正则表达式10个必会模式——让文本提取精准无误影刀RPA正则表达式是文本处理的瑞士军刀。网页抓到的数据里混着空格、换行、标签用内置方法怎么拆都拆不干净——一行正则就搞定。这篇文章给你10个影刀实战中最常用的正则模式直接复制用。作者林焱 | 影刀RPA进阶系列为什么需要正则影刀内置的文本处理指令分割、替换、截取足够简单场景用但碰到这些情况就吃力了从价格¥129.00含税里只取数字 129.00从 HTML 标签里提取纯文本验证手机号/邮箱格式批量替换多种字符同时去空格、去逗号、去换行正则一行代码解决以上全部问题。影刀里怎么用正则两种方式方式一用 Python 执行代码推荐功能最全importre text价格¥129.00resultre.search(r(\d\.\d{2}),text)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4980cf22accd4e43bc9e2538a1b0c486.png#pic_center)ifresult:priceresult.group(1)# 129.00方式二用影刀内置的「文本匹配」指令传入正则表达式和文本输出匹配结果。简单场景够用复杂场景推荐 Python。拼多多店群自动化上架方案模式1提取价格最常见importre text原价¥258.90促销价¥199.00pricesre.findall(r(\d\.\d{2}),text)# 输出[258.90, 199.00]# 如果价格格式不统一有12.9或129pricesre.findall(r(\d\.?\d{0,2}),text)模式2提取中文内容text商品名称Apple iPhone 15 256GB 黑色# 只提取中文部分chinesere.findall(r[\u4e00-\u9fff],text)# 输出[商品名称, 黑色]模式3验证手机号phone13812345678patternr^1[3-9]\d{9}$ifre.match(pattern,phone):print(手机号格式正确)else:print(手机号格式错误)模式4验证邮箱emailtestexample.cnpatternr^[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提取 URLtext详情页https://item.xx.com/12345.html 来源淘宝urlsre.findall(rhttps?://[^\s],text)# 输出[https://item.xx.com/12345.html]模式6从 HTML 标签里提取纯文本importre htmldiv classtitleiPhone 15 Pro Max/div# 去掉所有 HTML 标签cleanre.sub(r[^],,html)# 输出iPhone 15 Pro Max模式7按多个分隔符拆分文本text商品A|商品B,商品C;商品D、商品E# 按 | , ; 、 拆分itemsre.split(r[|,;、],text)# 输出[商品A, 商品B, 商品C, 商品D, 商品E]模式8提取日期text订单日期2026-06-11发货日期20260612# 匹配 YYYY-MM-DD 格式datesre.findall(r\d{4}-\d{2}-\d{2},text)# 输出[2026-06-11]# 同时匹配多种日期格式datesre.findall(r\d{4}[-/]\d{2}[-/]\d{2},text)# 匹配 2026-06-11 和 2026/06/11模式9清理空白字符text 商品名称\n\t iPhone 15 \n# 清理开头结尾空白cleantext.strip()# 清理所有类型空白空格、换行、制表符![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8451da1050f34d15b6342b95e871f976.png#pic_center)cleanre.sub(r\s, ,text).strip()# 输出商品名称 iPhone 15模式10提取特定格式的IDtext订单号DD2026061100523退款单号TK2026061100892# 提取DD开头数字的订单号order_idsre.findall(rDD\d{13},text)# 输出[DD2026061100523]# 通用写法提取所有大写字母数字的IDall_idsre.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 非贪婪匹配textdivA/divdivB/div# 贪婪默认匹配尽可能多re.findall(rdiv.*/div,text)# 结果[divA/divdivB/div] ← 把两个div都包进去了# 非贪婪匹配尽可能少re.findall(rdiv.*?/div,text)# 结果[divA/div, divB/div] ← 正确加个?就变成非贪婪模式。2. 别忘了转义特殊字符需要匹配字面上的.或(时必须加反斜杠\.、\(、\$。# 错误. 匹配了任意字符re.findall(r129.00,129x00)# 也会匹配# 正确\. 只匹配句点![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/825d792621cf483ca64e14bc7d709c15.png#pic_center)re.findall(r129\.00,129.00)# 严格匹配3. 在影刀的「文本匹配」里用正则换行符不会自动匹配影刀内置的文本匹配默认是单行模式.*不匹配换行。如果用 Pythonre.search()加re.DOTALL标志re.search(r商品名(.*)价格,text,re.DOTALL)小结这10个模式覆盖了影刀日常 90% 的文本处理需求。建议收藏这张速查表碰到文本提取问题先看有没有现成的模式能用比从头写快得多。正则不用背需要时复制改参数就行。内容标签影刀RPA / 正则表达式 / 文本处理 / Python re / 数据清洗作者林焱本文是「影刀RPA从零到实战」系列文章之一持续更新实操技巧与避坑经验。