Java 使用FileUtils时出错
我使用apache commons.io中的FileUtils搜索文件中两个字符串之间的文本,代码如下:Java 使用FileUtils时出错,java,file,fileutils,Java,File,Fileutils,我使用apache commons.io中的FileUtils搜索文件中两个字符串之间的文本,代码如下: Pattern p = Pattern.compile(Pattern.quote(fromDate) + "(.*?)" + Pattern.quote(toDate)); try { Matcher m = p.matcher(fileContent); while (m.find()) { System.out.pr
Pattern p = Pattern.compile(Pattern.quote(fromDate) + "(.*?)" + Pattern.quote(toDate));
try {
Matcher m = p.matcher(fileContent);
while (m.find()) {
System.out.println(m.group(1));
但是有一个错误,它只在两个字符串位于同一行时才给出输出,如果字符串位于不同的行时就没有输出?在这里,我将整个文件的内容放入一个“文件内容”列表中。该点不会在多行上搜索。您需要为该
模式提供第二个参数。DOTALL
如下所示:
Pattern p=Pattern.compile(Pattern.quote(fromDate)+“(.*)”+Pattern.quote(toDate)、Pattern.DOTALL)代码>
此外,本主题还对其工作原理进行了一些很好的解释:尝试用?s结尾正则表达式,这样新正则表达式应该是:
“(*s)”
在大多数情况下,匹配器在遇到换行符时停止计算表达式\n。
当匹配器尝试匹配正则表达式时,让它通过\n。我也尝试了使用此“(?s)”,它工作正常。无论如何,谢谢你的建议。我本想使用这个标志,但现在(?s)解决了我的问题。谢谢