не могу найти это простое регулярное выражение - PullRequest
1 голос
/ 03 марта 2020

Я пытаюсь с помощью #(?:[a-fA-F0-9]{2}[,])*(?:[a-fA-F0-9]{2}(?!,)){0,1}# соответствовать следующим строкам:

#1C,B4,97,A3,EF,CF,5A,4A#   //should  match
##  //should  match
#1C#  //should  match
#01# //should match
#1C,1C,1C,1C,# //should not match
#1C,# //should not match
#1C # //should not match
# 1C# //should not match
#11C# //should not match
#11C,,1C# //should not match
#1# //should not match
#ZZ# //should not match

, но на regex101 это соответствует только первой строке, почему? спасибо

1 Ответ

1 голос
/ 03 марта 2020

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

#(?:[a-fA-F0-9]{2}(?:,[a-fA-F0-9]{2})*)?#

Демонстрация RegEx

Подробности RegEx:

  • #: совпадение #
  • (?:: запуск группы без захвата
    • [a-fA-F0-9]{2}: сопоставление 2 шестнадцатеричных символов
    • (?:: начало второго без группа захвата
      • ,: сопоставить запятую
      • [a-fA-F0-9] {2} `: сопоставить 2 шестнадцатеричных символа
    • )*: конец 2-й группы без захвата. * повторяет эту группу 0 или более раз
  • )?: конец группы без захвата. ? делает это совпадение необязательным
  • #: совпадение #
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...