Java正则表达式多行(换行)匹配
说明,默认情况下Java正则表达式匹配内容必须是一行得,如果匹配得内容区间存在换行就无法匹配,需要通过一个配置来搞定。
执行输出结果为:
说明,默认情况下Java正则表达式匹配内容必须是一行得,如果匹配得内容区间存在换行就无法匹配,需要通过一个配置来搞定。
Java正则表达式默认匹配内容中含多行示例
public class Test {
public static void main(String[] args) {
String content = FileUtil.readUtf8String("d:/test/1.txt");
System.out.println("===================>内容开始");
System.out.println(content);
System.out.println("===================>内容结束");
Matcher matcher1 = Pattern.compile("AA.*BB").matcher(content);
System.out.println("默认查找结果:"+matcher1.find());
}
}
执行输出结果为:
===================>内容开始
我是第一行
我是空行AA
我是第二行
文本末尾了。。。BB
===================>内容结束
默认查找结果:false
可以看到要匹配AA到BB中间得所有内容,但是有换行导致最终匹配结果为false,也就是没匹配上。
Java正则表达式开启多行内容匹配
public class Test {
public static void main(String[] args) {
String content = FileUtil.readUtf8String("d:/test/1.txt");
System.out.println("===================>内容开始");
System.out.println(content);
System.out.println("===================>内容结束");
Matcher matcher1 = Pattern.compile("AA.*BB").matcher(content);
System.out.println("默认查找结果:"+matcher1.find());
Matcher matcher2 = Pattern.compile("(?s)AA.*BB").matcher(content);
System.out.println("多行匹配查找结果:"+matcher2.find());
}
}
执行结果:
===================>内容开始
我是第一行
我是空行AA
我是第二行
文本末尾了。。。BB
===================>内容结束
默认查找结果:false
多行匹配查找结果:true
开启多行内容匹配只需要在正则表达式前面添加(?s)即可
版权申明:本文为博主原创文章,未经博主允许不得转载。
https://www.leftso.com/blog/1030.html
时效提示:本文最后更新于【 2022-04-27 08:31:12 】,某些文章具有时效性,若有错误或已失效,请在下方留言。
时效提示:本文最后更新于【 2022-04-27 08:31:12 】,某些文章具有时效性,若有错误或已失效,请在下方留言。