Regex, чтобы соответствовать ровно одной строке с запятыми - PullRequest
0 голосов
/ 09 апреля 2020

Пример:

src: anyword, anyword, anyword

Я хочу проверить, содержит ли src только one comma разделенные строки, как указано в примере

Я написал (.[^\s*]+,.*[^,\s*]+$) это, но с некоторыми ошибками Scenar ios

Для меня следующие сценарии ios недействительны

src: abc, ,1232
src: ,abc, dasf

демо: https://regex101.com/r/UyQ5KX/1

1 Ответ

1 голос
/ 09 апреля 2020

Вы можете использовать

: *[^\s,]+(?:, *[^,\s]+)*$

Или, чтобы разрешить больше пробелов, чем просто пробел между словами:

:[^\S\n\v\f\r\u2028\u2029]*[^\s,]+(?:,[^\S\n\v\f\r\u2028\u2029]*[^,\s]+)*$

См. regex demo

Если от начала строки до двоеточия должно быть 1+ символов, не являющихся двоеточиями, вы можете добавить ^[^:]+ перед указанными выше шаблонами.

Подробности

  • ^ - начало строки
  • [^:]+ - 1+ символов, отличных от :
  • : - двоеточие
  • [^\S\n\v\f\r\u2028\u2029]* - 0 или более вхождений только горизонтальных пробелов
  • [^\s,]+ - 1 или более вхождений символов, отличных от пробелов и запятых
  • (?:,[^\S\n\v\f\r\u2028\u2029]*[^,\s]+)* - 0 или более вхождений
    • , - запятая
    • [^\S\n\v\f\r\u2028\u2029]* - 0 или более вхождений только горизонтальных пробелов
    • [^\s,]+ - 1 или более вхождений символов, кроме пробелов и запятых
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...