java正则表达式!正则表达式踩坑!!!
来源:互联网 发布:南阳网络推广哪家好 编辑:程序博客网 时间:2024/06/02 16:10
java正则表达式
java正则表达式套路:
String content = "你好<h1>你好啊!!!</h1>啊!!!";String pattern = "<h1>.*?</h1>";List<String> list = new ArrayList<String>();Pattern p = Pattern.compile(pattern);Matcher m = p.matcher(content);while(m.find()){ list.add(m.group());}for (int i=0; i<list.size(); i++){ get = get + list.get(i);}String result = get.replaceAll("<.*?>", "");System.out.println(result);输出结果为:你好啊!!!
一般来说正常得这个代码套上就行了!!但是,博主作死,拿正则表达式来解析网页发现,为什么我正则表达式没用了!!!!!
没有用了!!!!
输出的结果为空!!!!!!
打个比方:
String content = "<div class=\"post_text\" id=\"endText\" style=\"border-top:1pxsolid #ddd;\">\n" +
" 测试测试测试测试测试测试测试
" 测试测试测试测试测试测试测试
" 测试测试测试测试测试测试测试
" </div>\n"
这段代码套上去,想得到
<div class="post_text" id="endText" style="border-top:1px solid #ddd;">....</div>的内容
结果输出时空。。。。
然后我百度了好久,没有专门得讲解。最后还是去认真看Pattern包。。发现
Pattern.DOTALL
是个好东西。
DOTALL
启用 dotall 模式。
在 dotall 模式中,表达式 .可以匹配任何字符,包括行结束符。默认情况下,此表达式不匹配行结束符。
通过嵌入式标志表达式 (?s) 也可以启用 dotall 模式(s 是"single-line" 模式的助记符,在 Perl 中也使用它)。
也就是这句话Pattern p = Pattern.compile(pattern,Pattern.DOTALL);才可以让.*? 进行多行匹配!转个链接https://www.cnblogs.com/sparkbj/articles/6207103.html
阅读全文
0 0
- java正则表达式!正则表达式踩坑!!!
- 【正则表达式】Java正则表达式
- 正则表达式 JAVA正则表达式
- 【Java】【正则表达式】正则表达式
- Java 正则表达式正则
- java正则表达式的坑
- 正则表达式工具类,正则表达式封装,Java正则表达式
- Java 正则表达式详解_正则表达式
- 【正则表达式】正则表达式
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- java和正则表达式
- java正则表达式详解!
- Java正则表达式详解
- Java正则表达式详解
- 电脑的发展史和趣闻,伟大的乔布斯和比尔盖茨
- TCP 、UDP、IP包的最大长度是多少
- 认识const 和assert
- Signal processing--scipy.signal
- MySql笔记一
- java正则表达式!正则表达式踩坑!!!
- Spring Boot 日志记录 SLF4J
- HDOJ 2552 三足鼎立
- Linux运维学习笔记之十:SSH服务
- Spring Boot JDBC 连接数据库
- Linux常用命令
- oracle数据库 视图相关的语句
- 1036. 跟奥巴马一起编程(15)
- python基础(一)