我matcher.groupCount()
给了我4但是当我使用时matcher.group(0)
,...... matcher.group(0)
,它给了我一个错误.
以下是我的代码:
Pattern pattern = Pattern.compile("([0-9]+).([0-9]+).([0-9]+).([0-9]+)"); Matcher matcher1, matcher2; GeoIP[0][0] = (GeoIP[0][0]).trim(); GeoIP[0][1] = (GeoIP[0][1]).trim(); System.out.println(GeoIP[0][0]); System.out.println(GeoIP[0][1]); matcher1 = pattern.matcher(GeoIP[0][0]); matcher2 = pattern.matcher(GeoIP[0][1]); System.out.println("matcher1.groupCount() = " + matcher1.groupCount()); System.out.println("matcher2.groupCount() = " + matcher2.groupCount()); System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());
安慰:
Exception in thread "main" 1.0.0.0 1.0.0.255 matcher1.groupCount() = 4 matcher2.groupCount() = 4 java.lang.IllegalStateException: No match found at java.util.regex.Matcher.group(Unknown Source) at filename.main(filename.java:linenumber)
行号指向
System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());
Affe.. 9
groupCount
只是告诉你在正则表达式中定义了多少个组.如果您想要实际访问结果,则必须先执行匹配!
if (matcher1.find()) { System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString()); } else { System.out.println("No match."); }
也是.
正则表达式中的特殊角色,你可能想要\\.
?
groupCount
只是告诉你在正则表达式中定义了多少个组.如果您想要实际访问结果,则必须先执行匹配!
if (matcher1.find()) { System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString()); } else { System.out.println("No match."); }
也是.
正则表达式中的特殊角色,你可能想要\\.
?