如何从字符串中移除'S/O'字符片段得到目标格式结果?
字符串清洗实现方案
需求说明
需要移除字符串中连字符-后紧跟的S/O标识,以及该标识后续相邻的所有空格,保留连字符与后方的业务名称内容。
原始待处理内容
ID 60079804-S/O PALMER DONAVIN MFG 60008517-S/O READY CABLE INC. 60008049-S/O ACORN INTERNATIONAL
目标输出结果
ID 60079804-PALMER DONAVIN MFG 60008517-READY CABLE INC. 60008049-ACORN INTERNATIONAL
核心实现逻辑
用精准模式匹配固定片段:匹配-S/O加上它后面的连续相邻空格,将该整段匹配内容替换为-即可。
匹配用的正则模式为 -S/O\s+,该模式只会命中连字符后紧跟S/O的场景,不会误判字符串其他位置出现的S/O字符,兼容性强。
不同场景下的落地方法
- Python 代码处理
import re raw_content = """ID 60079804-S/O PALMER DONAVIN MFG 60008517-S/O READY CABLE INC. 60008049-S/O ACORN INTERNATIONAL """ cleaned_content = re.sub(r"-S/O\s+", "-", raw_content) print(cleaned_content)
运行后直接输出符合要求的结果。
- 数据库SQL处理(MySQL 8.0+/PostgreSQL)
如果需要在数据查询阶段直接清洗字段,可直接用内置正则替换函数:
SELECT REGEXP_REPLACE(target_field, '-S/O[[:space:]]+', '-') AS cleaned_field FROM your_table;
- Excel/WPS表格批量处理
不需要写代码,直接用自带的替换功能即可:- 选中需要处理的单元格范围
- 打开替换窗口,查找内容输入
-S/O(注意S/O后输入一个半角空格) - 替换为输入
-,点击全部替换即可完成批量清洗。
注意事项
正则中\s+会自动匹配S/O后1个或多个连续空格,如果存在S/O后多打了空格的异常数据,也能一次性清洗干净,不会残留多余空格。
内容的提问来源于stack exchange,提问作者Jaskeil
相关产品推荐
相关产品推荐

