почему приведенное ниже регулярное выражение не соответствует строке?

#regex

Вопрос:

Я пытаюсь сопоставить приведенную ниже строку с регулярным выражением

строка : PKGx.1234 … Регулярное выражение BBA : ^bPKG[0-9]{0,1}.[0-9]{0,4} … bBB[A-B]{1}?$

но я не получаю ошибки совпадения

может ли кто-нибудь помочь мне с тем, как я могу изменить регулярное выражение, чтобы оно соответствовало данной строке ..?

Комментарии:

1. Есть x после PKG , но вы используете [0-9]{0,1} . Кроме того, в конце строки есть пробел и запятая, вам требуется конец строки сразу после BBA этого . Попробуй что-нибудь в этом роде ^PKG[0-9A-Za-z]?.[0-9]{0,4} ... BB[AB]b .

Ответ №1:

У вас есть символ x после PKG, который шаблон пытается сопоставить с необязательной цифрой [0-9]? .Если должен быть необязательный символ в нижнем регистре, вы можете использовать [a-z]? вместо него.

Вы можете опустить границу слова перед BB , так как между ними есть неявная граница слова.

Обратите внимание, что вам не нужно избегать пробелов, но вам нужно избегать точки, чтобы соответствовать ей буквально.

 ^PKG[a-z]?.[0-9]{0,4} .{3} BB[A-B]b
 

Демонстрация регулярных выражений

Если вы хотите сопоставить всю строку, включая пробел и запятую в конце, включая использование $ привязки для утверждения конца строки:

 ^PKG[a-z]?.[0-9]{0,4} .{3} BB[A-B] , *$
 

Демонстрация регулярных выражений