2013-04-16 2 views
2

Возможно, вы слышали о Вилли, роботе IRC Python.Python удаляет разделяющие пространства

У меня есть trigger.group (2) Объект:

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

Как мне сделать это стать:

'JOIN :#Staff' 

Edit: В основном я хочу, чтобы удалить пробелы между символами без удаляя «реальные» пробелы, между N :. Обратите внимание, что команда может быть что угодно, с любым количеством аргументов: PRIVMSG, OPER и т.д.

+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' 
Смежные вопросы