0

^M次のようなものを使用して、行末としてDOS を持つファイルをスキャンしようとしています。

Scanner file = new Scanner(new File(saveToFilePath)).useDelimiter("(?=\^M)")

つまり、テキストを 1 行ずつ読みたいだけでなく^M、行末を示す も保持したいのです。これは簡単ですが、正規表現\nが苦手で、DOSに夢中になっています。end-of-line

4

1 に答える 1

0

いくつかの研究の後、私はついにそれを手に入れました。以下は、^M を見つけて保持するための正しい正規表現です。それがCTRL-Mを意味することを知らなかったので、あなたの回答のいくつかがそれを助けました. 何らかの理由で、「M」が正規表現に含まれていないため、なぜ機能するのかわかりませんが、機能します。これにより、とらえどころのない "^M" を検索するときに、(先読み正規表現を使用して) 区切り記号を含む行の区切り記号が得られます。

Scanner file = new Scanner(source).useDelimiter("(?=\p{Cntrl})")

みんなありがとう。

于 2016-01-27T19:20:02.440 に答える