Java中对多行内容的正则匹配

来源:互联网 发布:网络摄像头网址 编辑:程序博客网 时间:2024/06/05 20:31
------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培训、期待与您交流! -------
0 0
原创粉丝点击