2015-08-26 49 views
-3

我有一個字符串trackingNumber="1Z96Y3W80340983689" 我想測試一個正則表達式模式; 與正則表達式:"/1Z\\?\[0-9A-Z]\\{3}\\?\[0-9A-Z]\\{3}\\?\[0-9A-Z]\\{2}\\?\[0-9A-Z]\\{4}\\?[0-9A-Z]{3}\\?\[0-9A-Z]|\[\dT]\\d\\d\\d\\?\\d\\d\\d\\d\\?\\d\\d\\d/i" in java正則表達式不返回任何匹配的UPS跟蹤號碼

但我沒有得到任何匹配我的正則表達式。

+1

你至少需要刪除的正則表達式分隔符'/..../ i'。 –

+0

1Z \\?\ [0-9A-Z] \\ {3} \\?\ [0-9A-Z] \\ {3} \\?\ [0-9A-Z] \\ {2} \\ \ [0-9A-Z] \\ {4} \\ [0-9A-Z] {3} \\ \ [0-9A-Z] |????\ [\的dT] \\ d \ \ d \\ d \\ \\ d \\ d \\ d \\ d \\ \\ d \\ d \\ d \仍然會出現一些錯誤。 –

+2

「我的正則表達式不起作用,需要正確的表達式」是什麼的正確表達式?你還沒有說過'trackingNumber'需要如何驗證。規則是什麼?你的測試用例在哪裏? – atmd

回答

0
1Z?(?:[0-9A-Z]{3})?(?:[0-9A-Z]{3})?(?:[0-9A-Z]{2})?(?:[0-9A-Z]{4})?(?:[0-9A-Z]{3})?[0-9A-Z]|[\\dT]\\d\\d\\d?\\d\\d\\d\\d?\\d\\d\\d 

您可能需要這個。不要逃跑特殊charaters.See演示。

https://regex101.com/r/sS2dM8/6

+0

你能告訴我什麼(?:[0-9A-Z] {3})?確切的意思。我需要一些幫助來理解這一點。 –

+0

@sougatadas它使整個'[0-9A-Z] {3}'部分可選,並非非線性 – vks

+0

你能詳細pls.I無法理解。 –

1

此正則表達式匹配UPS跟蹤號碼:

/\b(1Z ?[0-9A-Z]{3} ?[0-9A-Z]{3} ?[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3} ?[0-9A-Z]|[\dT]\d\d\d ?\d\d\d\d ?\d\d\d)\b/i 

下面是一些其他已知的跟蹤號碼模式的正則表達式的列表:http://gummydev.com/regex/

+0

謝謝@Andrea Corbellini 2rep爲你的努力 – pythonian29033