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

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


要想对多行内容进行匹配,可以用到Pattern类的常量MULTILINE

下面的HTML源码是要匹配的内容



学籍查询































   学籍信息  
   
 
基本信息
 
 
学号:  201312341123 姓名:  疯雪
姓名拼音:  英文姓名: 
曾用名:  身份证号:  123456789012345678
性别:  学生类别: 
特殊学生类型:  学籍状态: 
收费类别:  民族:  汉族
籍贯:  地球 出生日期:  2015-07-20
政治面貌:  共青团员 考区: 
毕业中学:  高考总分:  999.0
录取号:  高考考生号: 
入学考试语种:  通讯地址: 
邮编:  家长信息: 
入学日期:  2015-07-20 系所:  某某学校
专业:  厕所管理 专业方向: 
年级:  2013级 班级:  13q厕所1
是否有学籍:  是否有国家学籍: 
校区:  某某校区 异动否: 
外语语种:  宿舍地址: 
因材施教:  培养层次:  本科生
培养方式:  分流方向: 
是否离校:  备注:  我是备注
备注1:  我是备注1 备注2: 
备注3: 
 
     
 
个人培养方案
 
 
2013级工商管理培养方案      
 
     
网页形式如下图

Java中对多行内容的正则匹配_第1张图片

我们要获取的内容是 表格体,也就是姓名:疯雪等信息

代码应该是这样的,其中正则表达式仅供参考

	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*\\s*(.*):.*\\s*\\s*\\s*(.*)\\s*";//匹配基础信息
		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)