>>> re.split(r'(\d+)', 'a1b2c30d40')
['a', '1', 'b', '2', 'c', '30', 'd', '40', '']
На схеме: как сказано в комментарии, \d
означает «соответствовать одной цифре», +
- модификатор, который означает «соответствовать одной или нескольким», поэтому \d+
означает «соответствовать как можно большему числу цифр» , Это помещается в группу ()
, поэтому весь шаблон в контексте re.split
означает «разбить эту строку, используя как можно больше цифр, как разделитель, дополнительно захватывая сопоставленные разделители в результате». Если вы пропустите группу, вы получите ['a', 'b', 'c', 'd', '']
.