あるパターンで分割するスキャナーの区切り文字を指定したいのですが、トークンからそのパターンを削除しません。正規表現によって識別されるものも区切り文字の一部として食べられるため、この作業を行うことができないようです。助言がありますか?
私の特定の問題、次のようなファイルがあります。
text/numbers mix
numbers
numbers
text/numbers mix
numbers
numbers
numbers
.
.
次のテキスト/数字ミックスまで、テキスト/数字ミックス+行から分割したいと思います。私はそれらを識別するための正規表現を持っていますが、述べたように、それを区切り文字として使用すると、必要なものの一部が食べられます。
編集: コードの追加:
static final String labelRegex="\\s*[^01\\s*]\\w+\\s*";
static final Pattern labelPattern = Pattern.compile(labelRegex, Pattern.MULTILINE);
は、テキスト/数字ビットを識別するために使用したパターンです (数字の行には、スペースで区切られたすべての 1/0 が含まれていることがわかっています)。
スキャナーを初期化すると、次のようになります。
stateScan = new Scanner(new BufferedReader(new FileReader(source)));
stateScan.useDelimiter(labelPattern);
ラベルを食べて、行を残すだけです。私は現在、同じソースから2つのバッファリングされたファイルリーダーで2つのスキャナーを開始する実装を実装しています.1つは状態によって分割され、もう1つはラベルによって分割されます。ラベルと状態を1つだけ取得したいのです。