Код: Выделить всё
import re
print(re.split(r'\W*', '...words...'))
Код: Выделить всё
['', '', 'w', 'o', 'r', 'd', 's', '', '']Я ожидал, что вывод будет быть ['', '', 'w', 'o', 'r', 'd', 's', '']
Мое объяснение ожидаемый результат следующий:
- \W* соответствует '...', и строка разделяется. Возвращенная строка является пустой строкой (''). Результирующий список: [''].
2.\W* не соответствует ни одному символу, не являющемуся словом, т. е. пустой строке ('') между '...' и 's', и здесь строка разделяется. . Возвращенная строка является пустой строкой, поскольку еще не сканируется ни один символ, не являющийся словом. Результирующий список: ['', '']. - \W* не соответствует 'w'.
- \ W* соответствует пустой строке между 'w' и 'o', и здесь строка разделяется. Возвращенная строка — «w». Результирующий список: ['', '', 'w'].
- ...
- ...
\W* соответствует '...' между 's' и end_of_string_, и строка разделяется. Возвращенная строка — «s». Результирующий список: ['', '', 'w', 'o', 'r', 'd', 's']. - \W* соответствует '' между '...' и end_of_string_ и строка разделяется. Возвращенная строка: ''. Результирующий список: ['', '', 'w', 'o', 'r', 'd', 's', ''].
Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-string