2013-04-16 127 views
2

您可能會也可能沒有聽說過Python IRC bot Willie。Python刪除分隔空間

我有一個trigger.group(2)對象:

'J O I N : # S t a f f' 

如何使這成爲:

'JOIN :#Staff' 

編輯: 基本上我想刪除字符之間的空間不刪除「真實」的空間,在N :之間。需要注意的是該命令可以是任何與任意數量的參數:PRIVMSGOPER

+0

您能更具體地說明您想要應用於第一個字符串的轉換規則嗎?目前尚不清楚。 – ASGM

+0

這可能是有趣的:http://stackoverflow.com/questions/7940619/squeezing-characters-with-python – squiguy

回答

8

既然你有交流的空間與非空間,嘗試採取一切第二個字符:

s = s[::2] 

例子:

>>> 'J O I N : # S t a f f'[::2] 
'JOIN :#Staff' 
+0

原來'willie.write(s)'方法是做一個'''.join(s) '。這個解決方案會修正,但我選擇完全繞過該方法。謝謝! –

+0

我懷疑它想要一個零件清單,例如'willie.write(['JOIN',':#Staff'])'。無論如何,我很高興你解決了你的問題! – nneonneo

0
def rmspace_separate(string, spacelimiter=' '*2): 
    return ' '.join(s.replace(' ', '') for s in s.split(spacelimiter)) 

會工作。更改spacelimiter以滿足您的需求。

+0

@nneonneo是改變它。 – thkang

1
>>> import re 
>>> text = 'J O I N : # S t a f f' 
>>> re.sub(r'(?<=\S)\s|\s(?=\S)', '', text) 
'JOIN :#Staff'