我的问题与 Java 中的正则表达式有关,特别是给定搜索模式的多个匹配项。我需要获取的所有信息都在 1 行,它包含一个映射到 IP 地址的别名(例如 SA)。每一个都用逗号分隔。我需要提取每一个。
SA "239.255.252.1", SB "239.255.252.2", SC "239.255.252.3", SD "239.255.252.4"
我的 Reg Ex 看起来像这样:
Pattern alias = Pattern.compile("(\\S+)\\s+\"(\\d+\\.\\d+\\.\\d+\\.\\d+)\"");
Matcher match = alias.matcher(lineInFile)
while(match.find()) {
// do something
}
这行得通,但我对此并不完全满意,因为自从引入了这一小段代码以来,我的程序已经放慢了一点(< 1 秒),但足以注意到差异。
所以我的问题是,我是否以正确的方式处理这个问题?是否有更有效或更轻量级的解决方案而不需要 while(match) 循环?和/或模式/匹配器类?