如何使用java String.replaceAll(字符串正则表达式,字符串替换)来获得我想要的东西?

时间:2013-10-15 06:53:19

标签: java regex string

代码:

  String etr = "fdsfsdaf\nTKT:1101234567890FSDFD";

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

如何使用String.replaceAll实现“\ nTTT:”之后获得前3个数字?在这个例子中,我想得到的是“110”。排除匹配器,模式和其他字符串方法,如indexOf()。因为我发现正则表达式包含“?:”,“?<”,但我尝试但失败了,类似于“:

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

提前致谢。我只知道正则表达式的一些基本用法。

2 个答案:

答案 0 :(得分:1)

或者你可以replaceAll(".+\nTKT:(\\d{3})\\d{10}.+", "$1");

答案 1 :(得分:0)

而不是替换,你应该匹配它

Matcher m=Pattern.compile(".+\nTKT:(\\d{3})\\d{10}.+").matcher(input);
if(m.find())
{
    m.group(1);
}