0

代码:

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

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

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

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

在此先感谢。我只知道 Regex 的一些基本用途。

4

2 回答 2

1

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

于 2013-10-15T09:51:12.367 回答
0

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

Matcher m=Pattern.compile(".+\nTKT:(\\d{3})\\d{10}.+").matcher(input);
if(m.find())
{
    m.group(1);
}
于 2013-10-15T06:55:54.380 回答