我在这里要求的应该是相当常见的,但我的目的是找出最佳方法。
以下是我应该如何解决这个问题的几个问题:
感谢您对此问题的任何见解/帮助。
答案 0 :(得分:4)
首先编写一个简单的工作解决方案,然后优化它。也就是说,我认为你可以做类似的事情:
"(regex1)|(regex2)|(regex3)"
的事情并且它是有效的。不过,我并不乐观 - 我从来都不清楚正则表达式捕获组在不同的|
分支中如何工作。Pattern.compile(regexString)
预编译正则表达式,使其不会重建多次。Files.toString(File, Charset)
只是一次性啜饮每个文件。如果您热衷于逐行进行,请使用Files.readLines(File, Charset)
获取List<String>
。您甚至可以使用完整的基于回调的Files.readLines(File, Charset, LineProcessor)
来避免将整个文件同时存储在内存中。Pattern
与目标文件进行匹配 - 您可能需要使用Matcher
来确定匹配的确切位置以及匹配的模式。