Regex在测试站点上工作,但在Java中不工作

Regex在测试站点上工作,但在Java中不工作,java,Java,我创建了一个正则表达式,并在它工作的正则表达式测试站点上进行了测试。。但是当我尝试在代码中使用它时,它找不到任何匹配项 可能的投入: "1 Question 1" "1X some random text" 我的正则表达式如下所示:([0-9]+X?)(*) 我从Regex测试站点获得的结果: 您忘记检查模式是否与输入字符串匹配。看看这个: publicstaticvoidmain(字符串…参数){ //字符串line=“1问题1”; String l

我创建了一个正则表达式,并在它工作的正则表达式测试站点上进行了测试。。但是当我尝试在代码中使用它时,它找不到任何匹配项

可能的投入:

"1 Question 1"
"1X some random text"
我的正则表达式如下所示:([0-9]+X?)(*)

我从Regex测试站点获得的结果:


您忘记检查模式是否与输入字符串匹配。看看这个:

publicstaticvoidmain(字符串…参数){
//字符串line=“1问题1”;
String line=“1X一些随机文本”;
Pattern=Pattern.compile(([0-9]+X?(*));
匹配器匹配器=模式匹配器(线);
if(matcher.matches()){
字符串id=matcher.group(1);
字符串问题=matcher.group(2);
System.out.println(“id:+id”);
System.out.println(“问题:+问题);
}否则
系统错误打印项次(“不匹配”);
}

在使用
group()之前,您需要调用
matcher.matches()
matcher.find()
,谢谢。。我的错是没有充分阅读文档
Pattern pattern = Pattern.compile("([0-9]+X? )(.*)");
Matcher matcher = pattern.matcher(line);
String id = matcher.group(1);
String question = matcher.group(2);