0

(iText)を使用してpdfファイルをテキストに変換する必要があるデータクリーニング作業を行っています。解析されたものからいくつかのデータ テーブルを抽出する必要があります。(テーブルは任意の順序で表示される可能性があるため、1 行ずつ解析することはできません)。とにかく、私は同じことの正規表現ソリューションを調べ始めました。これは簡単だと思いましたが、明らかに私には向いていません。

データはこんな感じ

Dummy Value Data
VAL1 VAL2 Mean Calc  Calc2
(mf) (m) (rad) (rad) (rad/100m)
0.0 0.0 0.0 0.0 0.000
9224.0 9224.0 0.0 0.0 0.000
9928.0 9925.9 2.3 322.5 0.490
9885.0 9889.8 0.9 285.9 -0.953
5432.0 5432.5 3.3 95.4 -0.509
<newline>
<newline>

これは、私がキャプチャしたいパターンとまったく同じです。最後の 2 つの新しい行は、パターンの終わりを示します。私はいくつかのことを試しましたが、何もうまくいきませんでした。正規表現も共有できますが、機能しません。

4

2 に答える 2

0

find メソッドを使用できます

あなたの正規表現は

(?<VAL1>[-+]?\d+([.]\d+)?)\s+(?<VAL2>[-+]?\d+([.]\d+)?)\s+(?<Mean>[-+]?\d+([.]\d+)?)\s+(?<Calc>[-+]?\d+([.]\d+)?)\s+(?<Calc2>[-+]?\d+([.]\d+)?)

あなたのコード

Matcher m=Pattern.compile(aboveRegex).matcher();
while(m.find())
{
    m.group("VAL1");
    m.group("VAL2");
    m.group("Mean");
    m.group("Calc");
}

編集

そのような複数のテーブルを照合するには

([+-]?\d+([.]\d+)?( [+-]?\d+([.]\d+)?){4}(\r?\n))+(?=(\r?\n))
于 2013-07-03T20:01:10.230 に答える