【发布时间】:2017-10-05 19:32:23
【问题描述】:
我正在寻找一种方法来捕获年份和字符串的最后一个数字。例如:“01/02/2017,546.12,24.2”,到目前为止,我的问题只有 Found 值:2017 和 Found 值:null。我无法捕获组 (2)。谢谢
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Scanner;
public class Bourse {
public static void main( String args[] ) {
Scanner clavier = new Scanner(System.in);
// String to be scanned to find the pattern.
String line = clavier.nextLine();
String pattern = "(?<=\\/)(\\d{4})|(\\d+(?:\\.\\d{1,2}))(?=,$)";
// 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(1) );
System.out.println("Found value: " + m.group(2) );
} else {
System.out.println("NO MATCH");
}
}
}
【问题讨论】:
-
字符串输入 = "01/02/2017,654.45,20.78" 和预期输出 = 2017,这是您的问题吗?您想在这种模式中实现什么目标?
-
你的问题有点不清楚。您发布了您想做的事情,但没有解释您在实施时遇到的问题。
-
我想要输出 = 2017 和 20.78
-
同样,这是代码要求,而不是您在创建代码时面临的问题的描述。我们希望有这样的描述,以便其他面临相同问题的人找到您的问题和可能的答案。
-
我的问题是我只得到了 Found value: 2017 和 Found value: null
标签: java regex capture-group