Fai*_*ian 6 java regex matcher
我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());
Run Code Online (Sandbox Code Playgroud)
安慰:
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)
Run Code Online (Sandbox Code Playgroud)
行号指向
System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());
Run Code Online (Sandbox Code Playgroud)
groupCount只是告诉你在正则表达式中定义了多少个组.如果您想要实际访问结果,则必须先执行匹配!
if (matcher1.find()) {
System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());
} else {
System.out.println("No match.");
}
Run Code Online (Sandbox Code Playgroud)
也是.正则表达式中的特殊角色,你可能想要\\.?