У меня есть несколько вопросов к описанию / примерам split () из документов Python RE
Если в разделителе есть группы захвата, и они совпадают в началестрока, результат начнется с пустой строки.То же самое относится к концу строки:
re.split(r'(\W+)', '...words, words...')
['', '...', 'words', ', ', 'words', '...', '']
В этом примере есть группа захвата, она совпадает в начале и конце строки, таким образом, результат начинается и заканчивается спустая строка.Вне понимания того, что это происходит, я хотел бы лучше понять аргументацию.Это объясняется следующим образом:
Таким образом, компоненты разделителя всегда находятся с одинаковыми относительными индексами в списке результатов.
Может ли кто-нибудь расширить это?Относительно чего?
Мой другой запрос связан с этим примером:
re.split(r'(\W*)', '...words...')
['', '...', '', '', 'w', '', 'o', '', 'r', '', 'd', '', 's', '...', '', '', '']
\w
будет соответствовать любому символу, который может использоваться в любом слове на любом языке (Flag: unicode), или будет эквивалентен [a-zA-Z0-9_]
(Флаг: ASCII), \W
является обратным к этому.Может ли кто-нибудь рассказать о каждом из совпадений в приведенном выше примере, объяснить каждое (если возможно) с точки зрения того, что сопоставляется (\ B, \ U, ...).
Добавлено 29/01/2019:
Кроме того, что я после, не было ясно сказано (мой плохой).Что касается второго примера, мне любопытно узнать, какие шаги были предприняты для получения результата (как обработал пример модуль re python).После прочтения этого поста о регулярных выражениях нулевой длины все прояснится, но мне все равно было бы интересно, если кто-нибудь сможет разбить логику до ['', '...', '', '', 'w',
в результатах.