[英]Python: substitute double space with one space and remove single space
我想更改這樣的字符串:
T h i s i s a t e s t
至:
This is a test
這是我的代碼,有效
while ' ' in s:
s = s.replace(' ', '$$')
while ' ' in s:
s = s.replace(' ', '')
while '$$' in s:
s = s.replace('$$', ' ')
但是,對此有簡單的解決方案嗎?
對於刪除所有空格或刪除單個空格並保留多個空格,也有類似的解決方案,但是在我的情況下,我也必須用單個空格替換雙空格。
import re
s = 'T h i s i s a t e s t'
print(re.sub(r'([^ ]) ([^ ])',r'\1 \2',s))
輸出 :
This is a test
s="T h i s i s a t e s t"
s=" ".join([str(i).replace(" ","") for i in s.split(" ")])
這應該工作。
說明:
您可以在re中使用否定的前瞻:
import re
s = 'T h i s a t e s t'
t = re.sub(r' (?! )', '', s)
print(t)
給出預期
This is a test
實際上,它為每個空格序列刪除一個空格:
>>> t= 'T h i s i s a t e s t'
>>> re.sub(r' (?! )', '', t)
'This is a test'
s = 'T h i s i s a t e s t'
''.join([row[0] for row in zip(s, range(len(s)+1)) if row[1]%2==0])
結果:
'This is a test'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.