私の意見では、あなたの問題に対する最善の解決策はJava regexを使用することです。正規表現を使用すると、取得するテキストのグループと、どの種類のテキストがどこに来るかを定義できます。私は長い間Javaを扱っていないので、頭のてっぺんからあなたを助けようとします。私はあなたに正しい方向へのポイントを与えようとします。
まず、パターンをコンパイルします。
Pattern pattern = Pattern.compile("^\d{1,2}:\d{1,2} GET (.*?) #\d+$", Pattern.MULTILINE);
正規表現の最初の部分は、1 桁または 2 桁の数字の後にコロンが続き、さらに 1 桁または 2 桁の数字が続くことを期待していることを示しています。その後に GET が続きます (これらの単語が必要な場合は GET|POST を使用でき、任意の単語が必要な場合は \w+? を使用できます)。次に、必要なグループを括弧で定義します。最後に、ハッシュと、少なくとも 1 桁の任意の桁数を入力します。DOTALL フラグと CASE_INSENSITIVE フラグを設定することを検討するかもしれませんが、必要になるとは思いません。
次に、マッチャーを続行します。
Matcher matcher = pattern.matcher(textToParse);
while (matcher.find())
{
//extract groups here
String group = matcher.group(1);
}
while
ループでは、括弧で選択したグループ内のテキスト (抽出したいテキスト) を見つけるために使用できますmatcher.group(1)
。matcher.group(0)
これは、現在探しているものではありません (私は推測します)。
コードにエラーがある場合は申し訳ありませんが、テストされていません。これがあなたを正しい軌道に乗せることを願っています。