這個問題在這里已經有了答案: java正則運算式捕獲組 (2個答案) 3 小時前關閉。
我試圖通過在正則運算式中使用非捕獲組(?:) 以數字格式 000-00000 獲取最后 5 個數字作為輸出。
我已經通過寫作嘗試過
"(?:\\d{3}-)(\\d{5})"
但是,我沒有收到所需的輸出,它顯示了整個數字而不切割第一部分。
String s="043-90956 045-50021 064-12345";
Pattern p=Pattern.compile("(?:\\d{3}-)(\\d{5})");
Matcher m=p.matcher(s);
while(m.find())
{
System.out.println(m.group());
}
uj5u.com熱心網友回復:
要獲得第一個捕獲組,您需要使用m.group(1). 默認組(組 0)回傳整個運算式。
您實際上不需要第一個非捕獲組規范來使運算式作業。也就是說,您可以使用:
"\\d{3}-(\\d{5})"
你可以在這里嘗試:https : //www.freeformatter.com/java-regex-tester.html,你會看到發生了什么。
uj5u.com熱心網友回復:
txt="043-90956 045-50021 064-12345"
pattern=r'(?:\d{3}-)(\d{5}){1}'
matches=re.findall(pattern,txt)
for match in matches:
print(match)
輸出:
90956
50021
12345
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/398239.html
上一篇:如何創建不同列舉類的串列
