Python如何移除字符串中所有类型的项目符号
解决方案
方案1:无额外依赖的正则匹配(兼容所有Python 3.x版本)
直接把常见的各类项目符号放入正则字符集匹配替换即可,自己遇到未覆盖的新符号直接追加到字符集里就行,维护成本极低:
import re # 你从文件读取到的原始内容 raw_content = "你读取文件得到的字符串变量" # 可自行扩展字符集内的项目符号 bullet_pattern = r"[•●○■□►▸▪▫–—⋅·]" clean_content = re.sub(bullet_pattern, "", raw_content)
如果需要同时清理项目符号前后的多余空格/缩进,可以调整正则模式:
# 匹配项目符号及前后任意数量的空白字符 bullet_pattern = r"\s*[•●○■□►▸▪▫–—⋅·]\s*"
方案2:全量匹配所有Unicode标准项目符号
如果不想手动维护项目符号列表,可以用支持完整Unicode属性匹配的第三方库regex,可以覆盖所有Unicode标准定义的项目符号:
- 先安装依赖:
pip install regex - 代码实现:
import regex raw_content = "你读取文件得到的字符串变量" # \p{Bullet} 是Unicode属性中专门匹配所有项目符号/子弹头的规则 clean_content = regex.sub(r"\p{Bullet}", "", raw_content)
补充说明
你读取文件时看到的是渲染后的普通字符而非\u开头的转义编码,是Python 3使用UTF-8编码读取文件时自动完成了字节到Unicode字符串的解码,不影响正则匹配,直接在正则里写对应字符或者写Unicode编码形式(比如\u2022对应•)效果完全一致。
内容的提问来源于stack exchange,提问作者MysteryTech443
相关产品推荐
相关产品推荐

