#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] , *$