Специфическое регулярное выражение для чисел с запятыми и дефисами - PullRequest
1 голос
/ 10 мая 2019

У меня есть имя файла, которое мне нужно проверить с помощью preg_match в PHP, но я не знаю много о шаблонах регулярных выражений, чтобы исправить мою проблему.

Строка, которую я пытаюсь проверить, состоит из 2 чисел (0-9), запятая, 2 цифры (0-9), дефис, 2 цифры (0-9), запятая, 2 цифры (0-9)

Примером является 47,60-51,00

Я пробовал следующие

(-)? [0-9] + ((, | -) [0-9] +) *

и

^ [0-9] [0-9, -] - [0-9, -] [0-9] $

Но оба, кажется, терпят неудачу так или иначе.Может ли кто-нибудь помочь направить меня в правильном направлении

1 Ответ

4 голосов
/ 10 мая 2019

Вы хотите сопоставить запятую как отдельное совпадение, но добавив ее в класс символов [0-9,-], она также может соответствовать цифре или -

Чтобы сопоставить этот формат более конкретным способом, выможно использовать этот шаблон с квантификатором {2}, чтобы повторить сопоставление цифры и сопоставить запятую и дефис в ожидаемой позиции.

^[0-9]{2},[0-9]{2}-[0-9]{2},[0-9]{2}$

Regex demo

ЕслиВы хотите, чтобы матч начинался с необязательного дефиса, который вы могли бы начать с ^-?

...