我試圖表達這樣 212425762_CHECK_08182014_1_USAJava的正則表達式長
9位數字加下劃線的模式,那麼5個字母,另一下劃線,一個8位數的日期,「_1_USA」。
這是我走到這一步,
String regex = "/^([0-9]{9})_([A-Z]{5})_(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])(20\\d\\d)(_1_USA)$/"
但它是行不通的。我猜這是「_1_USA」部分的錯誤。有任何想法嗎?
我試圖表達這樣 212425762_CHECK_08182014_1_USAJava的正則表達式長
9位數字加下劃線的模式,那麼5個字母,另一下劃線,一個8位數的日期,「_1_USA」。
這是我走到這一步,
String regex = "/^([0-9]{9})_([A-Z]{5})_(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])(20\\d\\d)(_1_USA)$/"
但它是行不通的。我猜這是「_1_USA」部分的錯誤。有任何想法嗎?
數量[1_USA]{1}
告訴Java來匹配1
任何單字符,下劃線,U
,S
,或A
。相反,只使用一個字符串:
String input = "212425762_CHECK_08182014_1_USA";
String regex = "^([0-9]{9})_([A-Z]{5})_([0-9]{8})_(1_USA)$";
if (input.matches(regex)) {
System.out.println("The input matches.");
}
此外,您正則表達式有其他一些錯別字,如開頭和結尾的正斜槓,並錯誤地關閉字符類。與其他一些語言不同,Java不在其正則表達式中使用正斜槓(除非你的意思是字面意思)。
你的正則表達式有一個錯字,你Z
後有一個)
而不是]
。試試這個:
String regex = "/^([0-9]{9})_([A-Z]{5})_([0-9]{8})_([1_USA]{1})$/"
你有幾個字符類,不應該有。
這可能是你的意思。
原料:^([0-9]{9})_([A-Z]{5})_([0-9]{8})_(1_USA)$
絃樂器:"^([0-9]{9})_([A-Z]{5})_([0-9]{8})_(1_USA)$"
擴展
^
([0-9]{9}) # (1)
_
([A-Z]{5}) # (2)
_
([0-9]{8}) # (3)
_
(1_USA) # (4)
$
'它只是無法正常工作... ...你還可以包括代碼,你正在嘗試使用這個正則表達式嗎?你的正則表達式模式有許多錯別字。另外,你爲什麼改變你原來的問題? –
固定。感謝您的幫助! – DylanK