Регулярное выражение - проблема с шаблоном [,-?[0-9]+]*

Это мой шаблон:

^~[0-9]+@Y 1,710,-?[0-9]+[,-?[0-9]+]*\n$

По какой-то причине это совпадает:~01@Y 1,710,9,

Но нет: ~01@Y 1,710,9

Я не понимаю, зачем нужна последняя запятая?

http://regex101.com/r/kP4pZ2/1

1 ответ

Я думаю, что проблема здесь

[,-?[0-9]+]*

Будет соответствовать "~01@Y 1,710,9," или же "~01@Y 1,710,[9]"

Если вы просто хотите определить совпадение выражения с запятой, вопросительным знаком, числом или "-" в конце, вы можете попробовать выражение ниже:

^~[0-9]+@Y 1,710,-?[0-9]+[,?0-9-]*$
Другие вопросы по тегам