Я пытаюсь найти правильное регулярное выражение для десятичных чисел, которые включают разделитель запятой.Regex десятичное число с запятой
Я нашел несколько других вопросов, касающихся этого вопроса в целом, но ни один из ответов действительно работал, когда я тестировал их
Лучшее, что я получил до сих пор:
[0-9]{1,3}(,([0-9]{3}))*(.[0-9]+)?
2 основные проблемы так далекий:
1) Он записывает числа с пробелами между ними «3001 1» вместо того, чтобы разбивать их на 2 соответствия «3001» «1» - я действительно не вижу, где я разрешил пространство в регулярном выражении.
2) У меня есть общая проблема с началом \ окончанием регулярного выражения.
Регулярное выражение должно соответствовать:
3,001
1
32,012,111.2131
Но нет:
32,012,11.2131
1132,012,111.2131
32,0112,111.2131
32131
Кроме того, я хотел бы, чтобы соответствовать:
1.(without any number after it)
1,(without any number after it)
as 1
(запятая или точка на конец номера следует упускать из виду).
Большое спасибо! .
Для начала, если библиотека регулярных выражений вашего языка уже делает это, вы должны, вероятно, привязать шаблон к обоим концам. В противном случае любая строка, содержащая по крайней мере одну цифру, будет соответствовать. – cHao
Вы разрешили пробелы в регулярном выражении с периодом ('' '.'''), который соответствует любому символу. Выбери период ('' '\ .'''), чтобы просто соответствовать только периоду. – creemama
Я не думаю, что вторая и третья проблемы - проблемы вообще. Из того, что я могу сказать, они не будут соответствовать тем, что они не должны. –