0

コード:

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

形式は「.+\nTKT:\d{13}.+」のようなものです。

String.replaceAll を使用して "\nTKT:" の後に最初の 3 つの数値を取得する方法を実装するには? この例では、取得したいのは「110」です。マッチャー、パターン、および indexOf() のようなその他の文字列メソッドを除外します。正規表現に「?:」、「?<」が含まれていることがわかったため、試してみましたが失敗しました。「」のようなものです。

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

よろしくお願いします。正規表現の基本的な使い方を知っているだけです。

4

2 に答える 2

0

置き換えるのではなく、一致させる必要があります

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