5

Javaを使用して既存のC#/。NETプログラムの一部を書き直す必要があります。私はJavaに精通しておらず、正規表現を処理するものが不足しているので、何かが不足しているのか、Javaがそのような機能を提供していないのかを知りたいだけです。

私は次のようなデータを持っています

2011:06:05 15:50\t0.478\t0.209\t0.211\t0.211\t0.205\t-0.462\t0.203\t0.202\t0.212

私が使用している正規表現パターンは次のようになります。

?(\d{4}:\d{2}:\d{2} \d{2}:\d{2}[:\d{2}]?)\t((-?\d*(\.\d*)?)\t?){1,16}

.NETでは、を使用して照合した後、値にアクセスできますmatch.Group[3].Captures[i]

Javaではそのようなものは見つかりませんでした。matcher.group(3)空の文字列を返すだけです。

C#で慣れているような動作を実現するにはどうすればよいですか?

4

1 に答える 1

3

コメントで述べたように、Javaは複数値のグループフィットの最後の値のみを返します。したがって、最初に正規表現を使用して、文字列の最後の部分を次の値で分離する必要があります。

strg = "0.478\t0.209\t0.211\t0.211\t0.205\t-0.462\t0.203\t0.202\t0.212"

次に、タブを分割します。

String[] values = strg.split("\\t");

于 2011-06-05T14:30:04.077 に答える