Как разбить строки на слова?

Методом "splt()" не получается, т.к. он разбивает только по пробелам, а мне так же нужно разбиение по точкам и запятым.
  • Вопрос задан
  • 16263 просмотра
Решения вопроса 2
@RPG
Только ли по точкам и запятым? Бывают ещё переносы строк, двоеточия, знаки вопроса и т.п. Кроме того, вам же не нужны пустые слова из-за того что в конце строки оказалась точка или лишний пробел. Оптимальным решением будет:
>>> input=' Your string with spaces, commas; dots...'
>>> re.sub('\W', ' ', input).split()
['Your', 'string', 'with', 'spaces', 'commas', 'dots']

Единственный минус - такое решение сильно медленнее, а без регэкспов у питона нет нативных функций трансляции символов как в Си (сюрприз).
Ответ написан
barkalov
@barkalov
re.split('[^., ]+', 'your string with spaces, commas and dots.')

UPD: надо убрать ^, иначе работает наоборот.
re.split('[., ]+', 'your string with spaces, commas and dots.')

https://docs.python.org/3/library/re.html#re.split
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@throughtheether
human after all
Такой вариант подойдет?
SEPARATORS=",.;?! "
def toster_word_split(s):
    result=[]
    current_word=''
    for char in s:
        if char in SEPARATORS:
            if current_word: result.append(current_word)
            current_word=''
        else:
            current_word+=char
    return result
print toster_word_split("Lorem,ipsum;bingo.Bongo? King of Kongo.")
Ответ написан
Комментировать
@SashaSkot
Специалист широкого профиля
Язык неплохо бы писать.
www.w3schools.com/jsref/jsref_split.asp - в жаба скрипте укажите сепараторы в параметре.
php.net/manual/ru/function.split.php - в простигосподи пэхапэ аналогично, только строку вторым параметром в функцию воткните.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы