This is my String:
Kết quả xổ số đài Bình Phước ngày 05/01/2013 Tên Giải Bình Phước - Ký hiệu: bp-05-01 Giải tám 08 Giải bảy 028 Giải sáu 3137-1907-5049 Giải năm 2026 Giải tư 25982-96941-33495-24133-42882-60030-16818 Giải ba 15685-66788 Giải nhì 20283 Giải nhất 46475 Giải đặc biệt 207984 This is my pattern:
.*?(Giải tám([\\s\\d-]*?))?Giải bảy([\\s\\d-]*?)Giải sáu([\\s\\d-]*?)Giải năm([\\s\\d-]*?)Giải tư([\\s\\d-]*?)Giải ba([\\s\\d-]*?)Giải nhì([\\s\\d-]*?)Giải nhất([\\s\\d-]*?)Giải đặc biệt([\\s\\d]*?).*? I try to get the 10 groups of numbers from the string. But I can't get the last group. It's always null. I also tested this http://www.regexplanet.com/advanced/java/index.html and I got the same result, without last group.
Please tell me where my pattern wrong at.
UPDATE: the output has 10 group as below:
01-20 01:32:23.013: I/System.out(11368): group 0 : Kết quả xổ số đài Bình Phước ngày 05/01/2013 Tên Giải Bình Phước - Ký hiệu: bp-05-01 Giải tám 08 Giải bảy 028 Giải sáu 3137-1907-5049 Giải năm 2026 Giải tư 25982-96941-33495-24133-42882-60030-16818 Giải ba 15685-66788 Giải nhì 20283 Giải nhất 46475 Giải đặc biệt 207984 01-20 01:32:23.013: I/System.out(11368): group 1 : Giải tám 08 01-20 01:32:23.014: I/System.out(11368): group 2 : 08 01-20 01:32:23.014: I/System.out(11368): group 3 : 028 01-20 01:32:23.015: I/System.out(11368): group 4 : 3137-1907-5049 01-20 01:32:23.015: I/System.out(11368): group 5 : 2026 01-20 01:32:23.015: I/System.out(11368): group 6 : 25982-96941-33495-24133-42882-60030-16818 01-20 01:32:23.015: I/System.out(11368): group 7 : 15685-66788 01-20 01:32:23.016: I/System.out(11368): group 8 : 20283 01-20 01:32:23.016: I/System.out(11368): group 9 : 46475 01-20 01:32:23.017: I/System.out(11368): group 10 : Thanks.
groupCount()returns the number of groups in your regex, not the the number of groups matched in your input, see JavaDoc?at my last matching group and It works. But I don't understand why. Could you tell me why please?