私の質問は、Java の正規表現、特に特定の検索パターンに対する複数の一致に関連しています。取得する必要があるすべての情報は 1 行にあり、IP アドレスにマップされるエイリアス (SA など) が含まれています。それぞれをコンマで区切ります。それぞれを抽出する必要があります。
SA "239.255.252.1", SB "239.255.252.2", SC "239.255.252.3", SD "239.255.252.4"
私の正規表現は次のようになります。
Pattern alias = Pattern.compile("(\\S+)\\s+\"(\\d+\\.\\d+\\.\\d+\\.\\d+)\"");
Matcher match = alias.matcher(lineInFile)
while(match.find()) {
// do something
}
これは機能しますが、この小さなコードを導入してからプログラムの速度が少し遅くなりましたが (< 1 秒)、違いに気付くには十分なため、完全には満足していません。
だから私の質問は、私はこれを正しい方法で行っていますか? while(match) ループを必要としない、より効率的またはおそらく軽量なソリューションはありますか? および/またはパターン/マッチャークラス?