Ваше регулярное выражение не соответствует 12345,12345
, поскольку эта часть ([^,]{5,7},)*
будет совпадать с самого начала, включая запятую.
Тогда он не соответствует запятой [^,]
, которая будет соответствовать второму 1
, а затем должен совпадать не с пробелом [^ ]{5,7}
, но для сопоставления осталось только 4 символа 2345
ион не может совпадать.
Если первая часть терпит неудачу, он пытается соответствовать [^,][^ ]{5,7}
, что в целом соответствует 6-8 символам.
Вы можете использовать:
^[^,\s]{5,7}(?:, [^,\s]{5,7})*$
Regex demo
^
Начало строки [^,\s]{5,7}
Совпадение не с пробельным символом запятой 5 - 7 раз (?:
Группа без захвата , [^,\s]{5,7}
Совпадение с запятой, пробелом, а не с запятой или пробелом 5-7 раз
)*
Закрытьгруппа без захвата и повторять 0+ раз $
Конец строки