在我看來你的問題的最佳解決方案將使用Java regex。使用正則表達式,您可以定義您想要檢索的文本組或文本組,以及哪種文本出現在哪裏。我很長一段時間都沒有和Java一起工作過,所以我會盡力幫助你擺脫困境。我會盡力給你一個正確的方向。
首先,編譯模式:正則表達式的
Pattern pattern = Pattern.compile("^\d{1,2}:\d{1,2} GET (.*?) #\d+$", Pattern.MULTILINE);
第一部分說,你期待一個或兩個數字,後跟一個冒號後面跟着一個或兩個數字一次。之後,GET(如果您期望這些單詞,您可以使用GET | POST,如果您期望任何單詞,可以使用\ w +?)。然後你用括號定義你想要的組。最後,你把散列和任何數字的數字至少一個數字。你可能會考慮把標誌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)
給出了整個發現,這不是你目前正在尋找的(我猜)。
對不起,在代碼中的任何錯誤,它還沒有經過測試。希望這會讓你走上正軌。