У меня есть регулярное выражение, которое, как я думал, до сих пор работало правильно. Мне нужно сопоставить необязательный символ. Это может быть, а может и нет.
Вот две строки. Верхняя строка соответствует, а нижняя - нет. Отсутствие единственной буквы в нижней строке - это то, что приводит к сбою.
Я хотел бы получить единственную букву после начальных 5 цифр, если она есть, а если нет, продолжить получение остальной части строки. Это письмо может быть AZ
.
Если я удалю ([AZ] {1}) +. *? +
из регулярного выражения, оно будет соответствовать всему, что мне нужно, кроме буквы, но это важно.
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
Вот регулярное выражение, которое я использую.
/^([0-9]{5})+.*? ([A-Z]{1}) +.*? +([A-Z]{1})([0-9]{3})([0-9]{3})([A-Z]{3})([A-Z]{3}) +([A-Z])[0-9]{3}([0-9]{4})([0-9]{2})([0-9]{2})/