如何使用java String.replaceAll(String regex,String replacement)获得我想要的东西?

如何使用java String.replaceAll(String regex,String replacement)获得我想要的东西?,java,regex,string,Java,Regex,String,代码: 格式类似于“++\nTKT:\d{13}.+” 如何使用String.replaceAll实现“\nTKT:”后的前3个数字?在这个例子中,我想得到的是“110”。排除Matcher、Pattern和其他字符串方法,如indexOf()。因为我发现正则表达式包含“?:”,“?而不是替换,所以应该匹配它 replaceAll(".+\nTKT:(?=[\\d{3}])\\d{10}.+",""); 或者您可以replaceAll(“.+\nTKT:(\\d{3})\\d{10

代码:

格式类似于“++\nTKT:\d{13}.+”


如何使用String.replaceAll实现“\nTKT:”后的前3个数字?在这个例子中,我想得到的是“110”。排除Matcher、Pattern和其他字符串方法,如indexOf()。因为我发现正则表达式包含“?:”,“?而不是替换,所以应该匹配它

      replaceAll(".+\nTKT:(?=[\\d{3}])\\d{10}.+","");

或者您可以
replaceAll(“.+\nTKT:(\\d{3})\\d{10}.+”,“$1”)

那么你想删除
110
?不,我想得到110Hi,Anirudh,谢谢你的回答,这是正确的,但还有一些其他问题,如果etr与正则表达式不匹配,怎么能让replaceAll结果为空?它可以通过修改正则表达式来实现吗?嗯,排除匹配器,模式..尽管这是一个正确的答案。向上投票d、 Anirudh以前回答过这个问题。因为我想在正则表达式与输入不匹配时将replaceAll结果设置为空,所以他修改了答案。再次感谢。
      replaceAll(".+\nTKT:(?=[\\d{3}])\\d{10}.+","");
Matcher m=Pattern.compile(".+\nTKT:(\\d{3})\\d{10}.+").matcher(input);
if(m.find())
{
    m.group(1);
}