У мене є регулярний вираз, який я вважав, що працює до цього часу правильно. Мені потрібно відповідати за необов’язковим символом. Він може бути там, а може і не бути.
Ось дві струни. Верхня рядок збігається, а нижня - ні. Відсутність однієї літери в нижньому рядку - це те, що робить її невдалою.
Я хотів би отримати одну букву після початкових 5 цифр, якщо вона є, а якщо ні, продовжуйте отримувати решту рядка. Цей лист може бути A-Z
.
Якщо я вийму ([A-Z]{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})/