Java中对多行内容的正则匹配
2015-07-20 19:35
555 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
要想对多行内容进行匹配,可以用到Pattern类的常量MULTILINE
下面的HTML源码是要匹配的内容
我们要获取的内容是 表格体,也就是姓名:疯雪等信息
代码应该是这样的,其中正则表达式仅供参考
执行结果:
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
要想对多行内容进行匹配,可以用到Pattern类的常量MULTILINE
下面的HTML源码是要匹配的内容
<html lang="zh-CN"> <head> <title>学籍查询</title> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <link href="/css/newcss/project.css" rel="stylesheet" type="text/css"> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="overflow:auto;"> <link href="/css/newcss/project.css" rel="stylesheet" type="text/css"> <script type="text/javascript"> </script> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="overflow:auto;"> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" > <tr> <td class="Linetop"></td> </tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="title" id="tblHead"> <tr> <td width="50%" > <table border="0" align="left" cellpadding="0" cellspacing="0" > <tr> <td> </td> <td valign="middle"> <b>学籍信息</b> </td> </tr> </table> </td> <td width="50%" > <table border="0" align="left" cellpadding="0" cellspacing="0" width="100%" > <tr> <td> </td> <td width="3"> </td> <td width="10" align="center"> <img src="/img/icon/edit.gif" id="kctzcx" border="0" title="个人学籍信息修改" style="cursor:hand" onClick="location='/xjInfoAction.do?oper=xgXsxjxxInfo'"> </td> </tr> </table> </td> </tr> </table> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" > <tr> <td class="Linetop"></td> </tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="fieldsettop"> <tr> <td> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr class="infoBg2"> <td class="infoBg1"> </td> <td><table border="0" cellpadding="0" cellspacing="0"> <tr> <td class="legend">基本信息</td> </tr> </table></td> <td class="infoBg3"> </td> </tr> <tr> <td class="infoBg4"> </td> <td> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="titleTop3"> <tr> <td> <table border="0" cellspacing="0" cellpadding="0" id="tblView"> <tr> <td class="fieldName" width="180">学号: </td> <td width="275"> 201312341123 </td> <td class="fieldName" width="180">姓名: </td> <td width="275"> 疯雪 </td> <td class="fieldName" width="150"></td> <td width="13%" rowspan="8" valign="top" align="right"> <div align="right"> <img src="xjInfoAction.do?oper=img" width="92" height="120"> </div> </td> </tr> <tr> <td class="fieldName" width="180"> 姓名拼音: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 英文姓名: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 曾用名: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 身份证号: </td> <td align="left" width="275"> 123456789012345678 </td> <tr> <td class="fieldName" width="180"> 性别: </td> <td align="left" width="275"> 男 </td> <td class="fieldName" width="180"> 学生类别: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 特殊学生类型: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 学籍状态: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 收费类别: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 民族: </td> <td align="left" width="275"> 汉族 </td> <tr> <td class="fieldName" width="180"> 籍贯: </td> <td align="left" width="275"> 地球 </td> <td class="fieldName" width="180"> 出生日期: </td> <td align="left" width="275"> 2015-07-20 </td> <tr> <td class="fieldName" width="180"> 政治面貌: </td> <td align="left" width="275"> 共青团员 </td> <td class="fieldName" width="180"> 考区: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 毕业中学: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 高考总分: </td> <td align="left" width="275"> 999.0 </td> <tr> <td class="fieldName" width="180"> 录取号: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 高考考生号: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 入学考试语种: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 通讯地址: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 邮编: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 家长信息: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 入学日期: </td> <td align="left" width="275"> 2015-07-20 </td> <td class="fieldName" width="180"> 系所: </td> <td align="left" width="275"> 某某学校 </td> <tr> <td class="fieldName" width="180"> 专业: </td> <td align="left" width="275"> 厕所管理 </td> <td class="fieldName" width="180"> 专业方向: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 年级: </td> <td align="left" width="275"> 2013级 </td> <td class="fieldName" width="180"> 班级: </td> <td align="left" width="275"> 13q厕所1 </td> <tr> <td class="fieldName" width="180"> 是否有学籍: </td> <td align="left" width="275"> 是 </td> <td class="fieldName" width="180"> 是否有国家学籍: </td> <td align="left" width="275"> 是 </td> <tr> <td class="fieldName" width="180"> 校区: </td> <td align="left" width="275"> 某某校区 </td> <td class="fieldName" width="180"> 异动否: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 外语语种: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 宿舍地址: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 因材施教: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 培养层次: </td> <td align="left" width="275"> 本科生 </td> <tr> <td class="fieldName" width="180"> 培养方式: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 分流方向: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 是否离校: </td> <td align="left" width="275"> </td> <td class="fieldName" width="180"> 备注: </td> <td align="left" width="275"> 我是备注 </td> <tr> <td class="fieldName" width="180"> 备注1: </td> <td align="left" width="275"> 我是备注1 </td> <td class="fieldName" width="180"> 备注2: </td> <td align="left" width="275"> </td> <tr> <td class="fieldName" width="180"> 备注3: </td> <td align="left" width="275"> </td> </tr> <tr> <td height="3"></td> </tr> </table> </td> </tr> </table> </td> <td class="infoBg5"> </td> </tr> <tr class="infoBg2"> <td class="infoBg6"> </td> <td class="infoBg2"> </td> <td class="infoBg8"> </td> </tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr class="infoBg2"> <td class="infoBg1"> </td> <td><table border="0" cellpadding="0" cellspacing="0"> <tr> <td class="legend">个人培养方案</td> </tr> </table></td> <td class="infoBg3"> </td> </tr> <tr> <td class="infoBg4"> </td> <td> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="titleTop3"> <tr> <td> <table border="0" cellspacing="0" cellpadding="0" id="tblView"> <tr> <td> <a style="text-decoration: underline" onclick="window.open('jhFakzsViewAction.do?fajhh=10049&type=fa', '', 'width=800,height=600,resizable=1,scrollbars=1');" href="#"> 2013级工商管理培养方案 </a> </td> </tr> <tr> <td height="3"></td> </tr> </table> </td> </tr> </table> </td> <td class="infoBg5"> </td> </tr> <tr class="infoBg2"> <td class="infoBg6"> </td> <td class="infoBg2"> </td> <td class="infoBg8"> </td> </tr> </table> </td> </tr> </table> </body> </body> </html>网页形式如下图
我们要获取的内容是 表格体,也就是姓名:疯雪等信息
代码应该是这样的,其中正则表达式仅供参考
public static void regexInfo() throws Exception { BufferedReader bufr = new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\学生信息.txt")); String line = null; StringBuilder sb = new StringBuilder(); while((line=bufr.readLine())!=null) { sb.append(line+"\r\n");//将HTML源代码原样存储到StringBuilder中 } String regex = "\\s*<td\\s*.+>\\s*(.*):.*\\s*</td>\\s*<td\\s*.+>\\s*(.*)\\s*</td>";//匹配基础信息 Pattern p = Pattern.compile(regex,Pattern.MULTILINE);//指定多行模式 Matcher m = p.matcher(sb.toString()); while(m.find()) System.out.println(m.group(1)+":"+m.group(2));//输出匹配到的结果 }
执行结果:
学号:201312341123 姓名:疯雪 姓名拼音: 英文姓名: 曾用名: 身份证号:123456789012345678 性别:男 学生类别: 特殊学生类型: 学籍状态: 收费类别: 民族:汉族 籍贯:地球 出生日期:2015-07-20 政治面貌:共青团员 考区: 毕业中学: 高考总分:999.0 录取号: 高考考生号: 入学考试语种: 通讯地址: 邮编: 家长信息: 入学日期:2015-07-20 系所:某某学校 专业:厕所管理 专业方向: 年级:2013级 班级:13q厕所1 是否有学籍:是 是否有国家学籍:是 校区:某某校区 异动否: 外语语种: 宿舍地址: 因材施教: 培养层次:本科生 培养方式: 分流方向: 是否离校: 备注:我是备注 备注1:我是备注1 备注2: 备注3:
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
相关文章推荐
- Java Error和Exception
- java过滤器和监听器详解
- (二)基于Eclipse的STM32工程建立
- Java培训-集合
- flex eclipse综合spring入门
- spring深入发掘-IOC容器解读系列-BeanFactory
- Spring深入挖掘:Spring在Web容器中是如何启动的
- java代码检查工具findbugs
- java获取数据库的列名,类型等信息
- bj java 初学2015-7-20
- 8张图理解Java
- Eclipse Java EE IDE中jsp页面编码修改
- spring mvc中的json整合
- 使用中国网建实现Java向手机发送短信的功能
- java文件写入时为何总写不进去
- Spring AOP切面编程
- (一)windows下的基于Eclipse的STM32开发环境搭建
- 图解 Java IO : 二、FilenameFilter源码
- 图解 Java IO : 二、FilenameFilter源码
- java:自定义异常