Ваше решение довольно близко к работе, как и ожидалось. Ваше регулярное выражение использует подстановочный знак *
, который соответствует 0 или более экземплярам символа, за которым он следует, в вашем случае литералы ,
и .
. Тонкая вещь здесь заключается в том, что оба могут иметь ровно нулевое совпадение, поэтому оно будет разделено между каждым символом!
Чтобы улучшить свое регулярное выражение, чтобы сделать то, что вы хотели, вы можете изменить его, чтобы использовать подстановочный знак +
, который соответствует одному или нескольким символам. Строго говоря, вы, вероятно, имеете только одного персонажа, и в этом случае вам может вообще не понадобиться квантификатор! Однако если вы используете подстановочный знак +
, вам также необходимо добавить оператор |
, чтобы он соответствовал либо ,
, либо .
.
В конечном счете, ваше регулярное выражение должно выглядеть как r"\,+|\.+"
или еще лучше, используйте группу []
примерно так r"[\,\.]"
, которая будет соответствовать ровно одному ,
или .
. Добавьте подстановочный знак +
для соответствия одному или нескольким.