您的位置:首页 > 编程语言 > Java开发

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

2015-07-20 19:35 555 查看
------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培训、期待与您交流! -------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: