Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用FileUtils时出错_Java_File_Fileutils - Fatal编程技术网

Java 使用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

我使用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.println(m.group(1));

但是有一个错误,它只在两个字符串位于同一行时才给出输出,如果字符串位于不同的行时就没有输出?在这里,我将整个文件的内容放入一个“文件内容”列表中。

该点不会在多行上搜索。您需要为该
模式提供第二个参数。DOTALL
如下所示:
Pattern p=Pattern.compile(Pattern.quote(fromDate)+“(.*)”+Pattern.quote(toDate)、Pattern.DOTALL)


此外,本主题还对其工作原理进行了一些很好的解释:

尝试用?s结尾正则表达式,这样新正则表达式应该是: “(*s)”

在大多数情况下,匹配器在遇到换行符时停止计算表达式\n。
当匹配器尝试匹配正则表达式时,让它通过\n。

我也尝试了使用此“(?s)”,它工作正常。无论如何,谢谢你的建议。我本想使用这个标志,但现在(?s)解决了我的问题。谢谢