影刀RPA 文本处理实战截取、拼接、替换、正则提取的常用场景网页采集回来的文本从来不是拿来就能用的。产品名称后面多了一串空格、地址信息搅在一起需要拆分、数字和单位混在一起需要分离。文本处理是RPA里最基础也最频繁的操作。这篇文章把最常见的六种文本处理场景讲清楚每个都给出影刀方式和Python方式的对比。场景1去除首尾空白和换行从网页上采集的文本经常自带多余的空格和换行符。特别是【获取元素文本】拿回来的很可能以\n结尾。影刀方式【文本处理】指令 → 选择去除首尾空白Python方式text 张三 \ncleanedtext.strip()# 张三.strip() 默认去除空格、\n、\t、\r 等所有空白字符。如果想只去掉某一侧text.lstrip()# 只去左边text.rstrip()# 只去右边场景2文本截取与分割从张三-销售部-经理里分别提取姓名、部门、职位。影刀方式【文本处理】→ 选择分割文本指定分隔符-Python方式拼多多店群自动化上架方案raw张三-销售部-经理partsraw.split(-)nameparts[0]# 张三deptparts[1]# 销售部titleparts[2]# 经理按固定位置截取订单号 “ORD20260701001”需要提取日期部分第4到第11位。order_noORD20260701001date_strorder_no[3:11]# 20260701从中间截取两个标记之间从订单金额¥12,350.00已支付里提取金额。text订单金额¥12,350.00已支付starttext.find(¥)endtext.find()amounttext[start:end]# ¥12,350.00场景3文本替换把所有元替换成¥把英文逗号替换成中文逗号。影刀方式【文本处理】→ 选择替换文本Python方式text价格3580元texttext.replace(元,¥)# 价格3580¥按规则替换正则替换把手机号中间四位替换成星号135****5678。importre phone13512345678maskedre.sub(r(\d{3})\d{4}(\d{4}),r\1****\2,phone)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/69b8608ca8614468ab0c6501d2494087.png#pic_center)# 135****5678场景4拼接文本把姓、名、称呼拼成完整称呼张 三 先生。影刀方式【文本拼接】指令Python方式# 简单拼接fulllast_namefirst_name先生# 大量字符串拼接高效方式parts[2026,07,01]date_str-.join(parts)# 2026-07-01# 带变量的格式化name张三amount3580msgf{name}的订单金额为¥{amount}大量字符串拼接时-.join()比高效得多特别是循环里。场景5正则提取从一段文本里提取特定模式的内容——这是文本处理里最实用也最难掌握的技能。提取数字importre text共找到 156 条结果matchre.search(r\d,text)countint(match.group())# 156提取金额text总金额¥35,280.50元matchre.search(r¥([\d,]\.?\d*),text)ifmatch:amount_strmatch.group(1).replace(,,)amountfloat(amount_str)# 35280.50提取多个匹配项text联系方式电话13800138000邮箱zhangsanexample.com# 提取所有手机号phonesre.findall(r1[3-9]\d{9},text)# [13800138000]# 提取所有邮箱emailsre.findall(r[\w\.-][\w\.-],text)# [zhangsanexample.com]分组提取TEMU店群如何管理运营从张三男35岁销售部里分别提取姓名、性别、年龄、部门text张三男35岁销售部matchre.match(r(.)(.)(\d)岁(.),text)ifmatch:namematch.group(1)# 张三gendermatch.group(2)# 男agematch.group(3)# 35deptmatch.group(4)# 销售部场景6文本清洗与标准化网页上采集的文本经常包含HTML实体、特殊空格、全角半角混杂。importrefromhtmlimportunescapedefclean_web_text(text):# 解码HTML实体nbsp; amp; #x...; 等textunescape(text)# 全角数字转半角full_to_halfstr.maketrans( 。【】,0123456789 ,.!?()[])texttext.translate(full_to_half)# 去除零宽空格、BOM等不可见字符textre.sub(r[\u200b\u200c\u200d\u200e\u200f\ufeff],,text)# 多个空白字符合并为一个空格textre.sub(r\s, ,text)# 去除首尾空白texttext.strip()returntext实战解析一条混乱的产品信息从网页采集回来的原始文本 【新品】Apple iPhone 16 Pro Max 256GB 深空黑色 9,999.00 库存56件\n需要提取品牌、型号、价格、库存。importre raw 【新品】Apple iPhone 16 Pro Max 256GB 深空黑色 9,999.00 库存56件\n# 清理rawraw.strip()rawre.sub(r【.*?】,,raw)# 去掉标签# 提取价格price_matchre.search(r([\d,]\.?\d*),raw)pricefloat(price_match.group(1).replace(,,))ifprice_matchelse0# 提取库存stock_matchre.search(r库存(\d),raw)stockint(stock_match.group(1))ifstock_matchelse0# 提取品牌和型号去掉了标签和价格库存后剩下的brand_modelre.sub(r[\d,]\.?\d*.*,,raw).strip()print(f品牌型号{brand_model})print(f价格¥{price})print(f库存{stock})总结什么时候用什么需求影刀方式Python方式推荐去空白【文本处理】.strip()都行简单替换【文本处理】.replace()都行按分隔符拆分【文本处理】.split()都行正则提取不支持re.search/findallPython复杂清洗步骤太多一个函数搞定Python拼音/汉字转换不支持pypinyin等库Python影刀内置的文本处理指令在日常场景完全够用。一旦涉及正则表达式、模式匹配、复杂清洗——果断切Python节点。Python的re模块是文本处理的瑞士军刀。作者林焱