0

私はテキストファイルを持っています。そこには、これらの 3 行のテキストが含まれています。

.....03122      25   8.2  "'Allo 'Allo!" (1982) {Fleeing Monks (#7.3)}
0.1.1.2003      15   5.6  "$weepstake$" (1979)
0..0012101      45   6.6  "$#*! My Dad Says" (2010) {Make a Wish (#1.9)}

以下のみ抜粋したいと思います。

8.2  "'Allo 'Allo!" (1982)
5.6  "$weepstake$" (1979)
6.6  "$#*! My Dad Says" (2010)

Java でスキャナーを使用しようとしましたが、失敗しました。また、タブ スペースを使用して文字列を分割しようとしました。不等間隔のタブがいくつかあるようです。

これら 3 つの値は、正規表現を使用して簡単に取得できると思います。ここまで書くことができました。誰かが私を助けてくれませんか。

\\d\\.\\d
4

2 に答える 2

3

この正規表現を使用します\d+\.\d+\s+".+?"\s+\(\d+?\)

グループ化にはこれを使用します(\d+\.\d+)\s+"(.+?)"\s+\((\d+?)\)

8.2          - 1 group
'Allo 'Allo! - 2 group
1982         - 3 group
于 2013-01-26T19:54:57.803 に答える
2

正しい答えが 1 つあるかどうかはわかりません。データの正確な性質に依存しますが、次のようなものをお勧めします。

 [0-9.]+\s+\d+\s+(\d\.\d\s+.*" \(\d\d\d\d\))

() 内のものをキャプチャする必要があります。

つまり、数字/ドットに一致し、その後に 1 つ以上の空白が続き、その後に数字が続き、その後に 1 つ以上の空白が続きます。次に、実際の一致、数字、ドット、数字、1 つ以上の空白、引用符、スペース、リテラル (、4 桁、およびリテラル) 内で。

于 2013-01-26T19:51:00.680 に答える