1
(W[AY]|C[AO])(\\s+\\d{5})
所以這目前分析與W或C,隨後郵政編碼開始的狀態。但是,它將所有這些返回爲一個組,如 示例WA 98121 CA 56679將返回組1爲WA 98121,組2爲CA 56679.如何解決這個正則表達式?
如何解決此問題以便在group1中檢索WA group2 98121 group3 CA GROUP4 56679
(W[AY]|C[AO])(\\s+\\d{5})
所以這目前分析與W或C,隨後郵政編碼開始的狀態。但是,它將所有這些返回爲一個組,如 示例WA 98121 CA 56679將返回組1爲WA 98121,組2爲CA 56679.如何解決這個正則表達式?
如何解決此問題以便在group1中檢索WA group2 98121 group3 CA GROUP4 56679
通常要捕獲在一場比賽中搜索「短語」的所有部分,並通過使用組分手這句話的部位,用匹配處理,然後再下一個短語匹配。因此,我將通過向您展示如何使用此方法進行編碼來回避您的問題。
這裏的一些運行的代碼,演示瞭如何正確搭配和使用羣體:
// Regex to match a "state zip" sequence, and capture each part in its own group
String regex = "(W[AY]|C[AO])\\s+(\\d{5})";
// Some sample input
String input = "blah blah WA 98121 blah blah CA 56679 blah blah";
Matcher matcher = Pattern.compile(regex).getMatcher(input);
while (matcher.find()) { // move to next match, if one exists
String state = matcher.group(1);
String zip = matcher.group(2);
// Work with state and zip values
System.out.println("State = " + state + ", zip = " + zip);
}
輸出:
State = WA, zip = 98121
State = CA, zip = 56679
注意捕獲正則表達式組從1
編號。
供參考,組0
是整場比賽。
你用什麼方法來執行正則表達式? – nneonneo
matcher.group() – Phoenix
每個匹配器應該匹配一個狀態 - 郵編組合。嘗試看看組(1),組(2)。 – nneonneo