news 2026/6/14 15:55:01

影刀RPA进阶教程_Python正则表达式实战案例电商数据清洗的10个现成模板

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
影刀RPA进阶教程_Python正则表达式实战案例电商数据清洗的10个现成模板

影刀RPA进阶教程:Python正则表达式实战案例——电商数据清洗的10个现成模板

做电商自动化,采集回来的原始数据基本都需要清洗。

价格带着"¥"、销量后面跟着"万件"、手机号藏在一段文字里……

正则表达式是处理这类问题最高效的工具。

不需要精通正则,只需要记住几个常用模式,能改、能用就够了。


一、先在影刀里用 Python 代码指令调用正则

影刀有一个"Python代码"指令,可以直接写 Python。

把正则处理逻辑放在这个指令里:

importre# input_text 是从上一步传进来的字符串(在影刀里配置输入变量)原始文本=input_text# 处理逻辑(见下面各个模板)result=...# 处理结果赋给 result,传回影刀

二、10个现成正则模板

模板1:提取价格(去掉货币符号和逗号)

原始文本:¥1,234.561234.56元USD 99.99

importredefextract_price(text):"""提取价格数字,返回 float"""# 匹配可能带逗号分隔的数字match=re.search(r'[\d,]+\.?\d*',str(text))ifmatch:price_str=match.group().replace(',','')returnfloat(price_str)return0.0# 示例print(extract_price("¥1,234.56"))# → 1234.56print(extract_price("99.9元"))# → 99.9print(extract_price("USD 99.99"))# → 99.99result=extract_price(input_text)

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


模板2:提取销量(处理"万"单位)

原始文本:1.2万件12345件1.5万+件

defextract_sales(text):"""提取销量,统一换算为整数"""text=str(text).strip()# 匹配带万的情况wan_match=re.search(r'([\d.]+)\s*万',text)ifwan_match:returnint(float(wan_match.group(1))*10000)# 匹配纯数字num_match=re.search(r'[\d,]+',text)ifnum_match:returnint(num_match.group().replace(',',''))return0result=extract_sales(input_text)

模板3:提取手机号

原始文本:联系人:张三,电话:138 1234 5678,微信同号

defextract_phone(text):"""提取中国大陆手机号"""pattern=r'1[3-9]\d{9}'phones=re.findall(pattern,re.sub(r'\s','',str(text)))# 先去掉空格returnphones[0]ifphoneselse""![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/314dff8231d54dedb0022a785f85c86d.png#pic_center)result=extract_phone(input_text)

模板4:提取电子邮箱

defextract_email(text):pattern=r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'emails=re.findall(pattern,str(text))returnemails[0]ifemailselse""result=extract_email(input_text)

模板5:提取日期(多种格式)

原始文本:2026-06-102026/6/102026年6月10日

defextract_date(text):"""提取日期,返回 YYYY-MM-DD 格式"""patterns=[(r'(\d{4})[/-](\d{1,2})[/-](\d{1,2})','{}-{:02d}-{:02d}'),(r'(\d{4})年(\d{1,2})月(\d{1,2})日','{}-{:02d}-{:02d}'),]forpattern,fmtinpatterns:m=re.search(pattern,str(text))![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/93a2e3b4772c4c9aa1ed1f6b822226f4.png#pic_center)ifm:y,mo,d=int(m.group(1)),int(m.group(2)),int(m.group(3))returnfmt.format(y,mo,d)return""result=extract_date(input_text)

模板6:提取括号内的内容

原始文本:商品编号(SPU-20260610-001)已上架

defextract_bracket(text,bracket_type='()'):"""提取括号或其他符号中的内容"""ifbracket_type=='()':pattern=r'[((]([^))]+)[))]'elifbracket_type=='[]':pattern=r'[\[【]([^\]】]+)[\]】]'else:pattern=r'[<>]([^<>]+)[<>]'matches=re.findall(pattern,str(text))returnmatches[0]ifmatcheselse""result=extract_bracket(input_text)

模板7:提取链接(URL)

defextract_url(text):pattern=r'https?://[^\s\'"<>]+'urls=re.findall(pattern,str(text))returnurls# 返回列表,可能有多个![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4723c4cb6b864fdea934a69eec1a37f6.png#pic_center)result=extract_url(input_text)

模板8:清理多余空白字符

原始文本:连 衣 裙 (夏季款)

defclean_whitespace(text):"""去掉首尾空格,中间多个空格合并为一个"""text=str(text).strip()text=re.sub(r'\s+',' ',text)# 中间多空格→单空格text=re.sub(r'\n+','\n',text)# 多个换行→单换行returntext result=clean_whitespace(input_text)

模板9:判断字符串是否为纯数字或特定格式

defis_valid_price(text):"""判断是否为合法价格格式(正数,最多2位小数)"""text=str(text).strip()returnbool(re.fullmatch(r'\d+(\.\d{1,2})?',text))defis_valid_phone(text):![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7bf5a97c17ee49b7b791d912b0d5e83a.png#pic_center)"""判断是否为合法手机号"""returnbool(re.fullmatch(r'1[3-9]\d{9}',str(text).strip()))result=is_valid_price(input_text)

模板10:批量替换敏感信息(数据脱敏)

defdesensitize(text):"""手机号和邮箱脱敏"""# 手机号中间4位替换为****text=re.sub(r'(1[3-9]\d{2})\d{4}(\d{4})',r'\1****\2',str(text))# 邮箱用户名只显示前2个字符text=re.sub(r'([a-zA-Z0-9._%+-]{2})[a-zA-Z0-9._%+-]+(@[a-zA-Z0-9.-]+)',r'\1***\2',[video(video-Xb5DGYLk-1781422373176)(type-csdn)(url-https://live.csdn.net/v/embed/524993)(image-https://v-blog.csdnimg.cn/asset/a547123d88ad712dccba346c9217e237/cover/Cover0.jpg)(title-TEMU店群如何管理运营?)]text)returntext result=desensitize(input_text)

三、如何在影刀里使用这些模板

标准用法:

  1. 拖入"Python代码"指令

  2. 配置输入变量:input_text→ 绑定到上一步获取到的文本变量

  3. 把对应模板粘贴进代码块(注意最后一行要是result = ...

  4. 配置输出变量:把result绑定到一个影刀变量

批量处理(整列数据):

importre,pandasaspd# 假设 data_list 是从影刀传进来的列表变量# 批量处理整列价格result=[extract_price(item)foritemindata_list]

四、正则测试工具

写好正则后先测试,不要直接放进流程:

  • regex101.com:在线测试,可以看到每个捕获组匹配了什么,还有语法解释
  • 浏览器控制台"¥1,234".match(/[\d,]+/),快速验证

五、常见正则符号速查

符号含义示例
\d一个数字\d+匹配多个数字
\s空白字符(空格/换行/Tab)\s+匹配多个空白
\w字母/数字/下划线\w+匹配单词
.任意单个字符a.b匹配 axb
+1次或多次\d+至少一个数字
*0次或多次\d*零个或多个数字
?0次或1次(可选)\d?零个或一个数字
{n,m}n到m次\d{1,2}1-2个数字
[abc]abc中的一个[0-9]等价于\d
(...)分组/捕获(\d+)元捕获数字
^字符串开头^1[3-9]以1开头
$字符串结尾\d+$以数字结尾

#影刀RPA #Python正则表达式 #数据清洗 #RPA进阶教程 #电商自动化

作者:林焱

本文为影刀RPA系列文章之一,内容源于实操经验整理与分享。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 15:51:34

AutoCAD字体管理终极方案:告别字体缺失的完整攻略

AutoCAD字体管理终极方案&#xff1a;告别字体缺失的完整攻略 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 还在为打开AutoCAD图纸时频繁弹出的"找不到字体文件"警告而烦恼吗&#xff1f;Fo…

作者头像 李华
网站建设 2026/6/14 15:51:34

终极戴森电池修复指南:如何通过开源固件解决32次红灯故障

终极戴森电池修复指南&#xff1a;如何通过开源固件解决32次红灯故障 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-BMS 你是否曾经面对戴森吸…

作者头像 李华
网站建设 2026/6/14 15:50:51

MPC8280 FCC HDLC控制器与SPI实战配置详解

1. MPC8280 FCC HDLC控制器&#xff1a;从硬件描述符到实战配置在嵌入式网络和通信设备开发领域&#xff0c;尤其是涉及传统广域网&#xff08;WAN&#xff09;接口如E1/T1、X.21或V.35时&#xff0c;HDLC协议是绕不开的基石。它高效、可靠&#xff0c;但若全靠软件实现&#x…

作者头像 李华
网站建设 2026/6/14 15:43:07

深入解析MPC8280 PowerQUICC II G2_LE核心:异常处理与MMU内存管理

1. 项目概述在嵌入式系统开发领域&#xff0c;尤其是涉及网络通信、工业控制或复杂实时处理的应用中&#xff0c;处理器的核心架构设计直接决定了系统的可靠性、实时性和性能上限。今天&#xff0c;我想深入聊聊一款在通信和网络设备领域曾经扮演过重要角色的处理器核心——MPC…

作者头像 李华
网站建设 2026/6/14 15:42:59

如何永久保存微信聊天记录:WeChatMsg完整解决方案终极指南

如何永久保存微信聊天记录&#xff1a;WeChatMsg完整解决方案终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…

作者头像 李华
网站建设 2026/6/14 15:41:57

MPC8540 RapidIO消息单元寄存器详解与驱动开发实战

1. 项目概述与RapidIO核心价值在嵌入式系统开发&#xff0c;尤其是通信基础设施、网络交换设备或高性能计算节点中&#xff0c;处理器间的数据交换速度和可靠性直接决定了整个系统的性能天花板。早年做项目&#xff0c;经常遇到多核或多处理器之间通信的瓶颈&#xff1a;要么是…

作者头像 李华