2015-07-09 2 views
2

Я абсолютный нуб в регулярных выражениях и должен помочь, чтобы соответствовать номерам в этом формате:Regex помощи необходимо, чтобы соответствовать номеру

1,234,567 

или

123,456 

Включая запятых! Поэтому я хотел бы, чтобы соответствовать, например:

980,232 905,903 889,614 881,145 2,343,435 3,435,123 

Дополнительное примечание: Я использую модуль питона повторно

+1

Вопрос о разъяснении: каково минимальное и максимальное количество цифр, которые вы хотите сопоставить? В общем, вы хотите сопоставить любое число, состоящее из групп из 1-3 цифр, разделенных запятыми, с только ведущей группой, имеющей менее трех цифр? Или вам все равно, что цифры составляют 1-9 цифр? – Engineero

ответ

1

Вы можете использовать следующее регулярное выражение:

^(?:\d,)?\d{3},\d{3}$ 

Смотрите демо https://regex101.com/r/yY3xR6/1

И далее о регулярных выражений повторения http://www.regular-expressions.info/repeat.html

+0

Большое вам спасибо, что мне нужно – alexcons

+1

Это не соответствует, например, '84,325',' 32' и т. Д. –

+0

@ AndrisLeduskrasts OP не соответствует таким номерам! – Kasramvd

1

Ну, условия вы Изложены немного расплывчатым. Если вы хотите, чтобы соответствовать любые комбинации цифр, разделенных запятыми, которые можно использовать следующий шаблон (да, это своего рода широкий): [\d,]+

См demo

+0

Так я также читаю запрос OP. Вопрос чрезвычайно расплывчатый. –

2

\d{1,3}(?:,\d{3})*, чтобы соответствовать правильно помещенным запятые (4,43,424 не будет соответствовать)

https://regex101.com/r/kQ6fC9/3

Там может быть 1-3 цифр до первой запятой, а затем (,xyz) может повторить, однако раз он хочет, - ,123,456, ,123,456,789 и также не раз - просто число 13.

Это прекрасно работает для целых (целых) чисел, которые могут быть разделены запятыми для удобочитаемости. Если вам нужно добавить к нему десятичные числа, это означает, что число после последней запятой не имеет ограничений. (?<=^|\s)\d{1,3}(?:,\d{3})*(?:,\d+)?(?=\s|$) должен работать на любое число, включая десятичные знаки, при этом избегать ошибочных, https://regex101.com/r/kQ6fC9/4

Смежные вопросы