簡體   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