擅长:python、mysql、java
<p>你能只用正则表达式吗?根据文本文件的不同,您可能需要使用多行匹配,如下所示。在</p>
<pre><code> Pattern p = Pattern.compile("John\\s+Doe", Pattern.MULTILINE);
Matcher m = p.matcher("I am looking for John \nDoe, I am.");
System.out.println(m.find());
</code></pre>
<p>您也可以使用命令行实用程序来实现这一点,例如<code>pcregrep</code>-请参见<a href="https://stackoverflow.com/questions/2686147/how-to-find-patterns-across-multiple-lines-using-grep">related question</a>。在</p>
<p><strong>更新:</strong>为了解决存储名称的问题,一个用于存储相关字符串的内存高效结构是<a href="http://en.wikipedia.org/wiki/Trie" rel="nofollow noreferrer">Trie</a>,这可能很有用——可能有很多免费的实现,但据我所知,Java标准库中没有。请参见<a href="https://stackoverflow.com/questions/7983906/is-there-a-trie-in-java">this question</a>和{a4}以获取一些建议。在</p>