[英]regex matching pattern in java
我正在努力理解一个简单的regex
。 我用Google搜索了一下。 不知何故,它并没有让我感到惊讶。
这是方法:
public static void testMethod(){
String line = "This order was placed for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
System.out.println("Found value: " + m.group(3) );
}
}
这是输出:
我期待group(2)
打印3000
。 但为什么它只打印0
。
你需要([^0-9.]*)(\\\\d+)(.*)
。
第一组匹配所有内容,直到最后一个零,因为你在第二组中有+
。 您需要从第一组中转义数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.