繁体   English   中英

如何使用正则表达式摆脱重复的特殊字符?

[英]How do I get rid of repeating special characters with regular expressions?

我想去掉所有重复的点,除了一个点。

资料来源:

(1) "a... b."
(2) "a....... b... c."

我想要的结果:

(1) "a b."
(2) "a b c."

代码:

import re

a = "a... b."
b = "a....... b... c."

result = re.sub("[^a-zA-Z0-9 \\.{1}]", "", a)
print(result)

result = re.sub("[^a-zA-Z0-9 \\.{1}]", "", b)
print(result)

result = re.sub("[^a-zA-Z0-9 ][\\.{2,}]", "", a)
print(result)

result = re.sub("[^a-zA-Z0-9 ][\\.{2,}]", "", b)
print(result)

不工作。

我该怎么做才能得到我的结果?

下面的代码可以完成所需的任务

import re
result = re.sub("\\.{2,}","","a....b....c.d....e.")
print(result)

结果将是——
abc.de。

这将起作用:

import re
    
a = "a... b."
b = "a....... b... c."
    
result = re.sub("\\.{2,}","", a)
print(result)
    
result = re.sub("\\.{2,}","", b)
print(result)

您可以使用

re.sub(r'\.{2,}|[^a-zA-Z0-9.\s]', '', text)

请参阅正则表达式演示

详情

  • \.{2,} - 两个或更多点
  • | - 或者
  • [^a-zA-Z0-9.\s] - 除 ASCII 字母、数字、任何空格或. 字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM