首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FileUtils时出错

使用FileUtils时出错
EN

Stack Overflow用户
提问于 2015-11-25 18:16:45
回答 2查看 161关注 0票数 0

我使用apache commons.io中的FileUtils搜索文件中两个字符串之间的文本,代码如下:

代码语言:javascript
复制
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));

但是有一个错误,当两个字符串位于同一行时,它才给出输出,如果字符串在不同的行,则没有输出?这里,我将整个文件的内容放入一个Sting Varibale "fileContent“中。

EN

回答 2

Stack Overflow用户

发布于 2015-11-25 18:25:08

点不会搜索多行。您需要为此Pattern.DOTALL提供第二个参数,如下所示:Pattern p = Pattern.compile(Pattern.quote(fromDate) + "(.*?)" + Pattern.quote(toDate), Pattern.DOTALL);

这个主题也很好地解释了它是如何工作的:Match multiline text using regular expression

票数 0
EN

Stack Overflow用户

发布于 2015-11-25 18:28:42

尝试以?s结束正则表达式,这样新的正则表达式应该是:"(.*?s)“

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33913777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档