如何使用正则表达式去除重复的点(仅保留单个点)
问题解决:移除文本中连续重复的点,保留单个点
需求回顾
- 待处理文本示例:
- (1)
"a... b." - (2)
"a....... b... c."
- (1)
- 期望输出结果:
- (1)
"a b." - (2)
"a b c."
- (1)
问题分析
你之前的正则思路走偏了,没必要用字符排除类,核心应该是直接定位连续2个及以上的点,然后将其删除即可。
正确实现代码
import re a = "a... b." b = "a....... b... c." # 匹配连续2个或更多的点,替换为空字符串 result_a = re.sub(r'\.{2,}', '', a) result_b = re.sub(r'\.{2,}', '', b) print(result_a) # 输出: "a b." print(result_b) # 输出: "a b c."
代码说明
r'\.{2,}':正则中.是通配符,所以用\.转义来匹配实际的点;{2,}表示匹配前面的字符至少2次,也就是连续出现的多个点。- 用空字符串替换这些连续点,就能精准删掉所有重复的点,只保留孤立的单个点。
内容的提问来源于stack exchange,提问作者fringetos
相关产品推荐
相关产品推荐

