ฉันมี regex ที่ฉันคิดว่าทำงานได้อย่างถูกต้องจนถึงตอนนี้ ฉันต้องการจับคู่กับอักขระที่ไม่จำเป็น มันอาจจะมีหรือไม่
นี่คือสองสาย สตริงด้านบนจะจับคู่ในขณะที่ด้านล่างไม่ได้ การไม่มีตัวอักษรตัวเดียวในสตริงล่างคือสิ่งที่ทำให้มันล้มเหลว
ฉันต้องการรับตัวอักษรตัวเดียวหลังจากตัวเลข 5 ตัวเริ่มต้นถ้ามันอยู่ที่นั่นและหากไม่ได้รับสายอื่น จดหมายนี้สามารถA-Z
จดหมายฉบับนี้สามารถ
ถ้าฉันลบออก([A-Z]{1}) +.*? +
จาก regex มันจะตรงกับทุกสิ่งที่ฉันต้องการยกเว้นตัวอักษร แต่มันสำคัญมาก
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
นี่คือ regex ที่ฉันใช้
/^([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})/