Шаблон регулярного выражения \W*, соответствующий пустой строке в строке [закрыто]Python

Программы на Python
Anonymous
Шаблон регулярного выражения \W*, соответствующий пустой строке в строке [закрыто]

Сообщение Anonymous »

Код: Выделить всё

import re
print(re.split(r'\W*', '...words...'))
Вывод приведенного выше кода Python:

Код: Выделить всё

['', '', '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

Вернуться в «Python»