用一个main程序展示下

public static void main(String[] args){
       String text = "SSM<br>LOC<br>WUH 222046<br>CNL<br>CZ2834<br>23FEB16 23FEB16 2<br>CANWUH<br>RMK:NO PROT<br>=";
       text = text.replaceAll("<br>", "_");
       String singleLegFlightRegex = "^SSM[\\w\\s]+(CZ[0-9]{3,4}[a-zA-Z\\s]?)_(\\w{7}\\s\\w{7}\\s[1-7]{1})[_\\w\\s\\.\\(\\)]+([A-Z\\s]{6,7})";

//核心代码,匹配与查找
       Pattern pattern = Pattern.compile(singleLegFlightRegex);
       Matcher matcher = pattern.matcher(text);
       if(matcher.find()){
             System.out.println(String.format("%6s,%16s,%s", matcher.group(1),matcher.group(2),matcher.group(3)));
       }
}

输出的结果:CZ2834,23FEB16 23FEB16 2,CANWUH

简单说明下,  matcher.find() 会依次定位到符合regex的所有片段。 matcher.group(int i)这个对应整个片段中你的regex的子pattern, 1代表第一个(pattern),

在上述的例子中就是指(CZ[0-9]{3,4}[a-zA-Z\\s]?),依次类推。 0是整个匹配到的片段。

因此用来在一段文本中提取信息。定义一个类似regex=".*(pattern1).*(pattern2).*",匹配之后利用matcher.group(i)来提取。

java Regex匹配及解析文本的更多相关文章

  1. Java解析文本

    import java.io.*; import java.util.*; public class FileManager { public List<Dishes> parseFile ...

  2. java 正则表达式提取html纯文本

    本文来自我的个人博客: java 正则表达式提取html纯文本 做内容的大家都知道,从html中直接提取纯文本是一个非常大的问题.现将我做的正则匹配贴上: import java.util.regex ...

  3. java正则API简单解析

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...

  4. Java正则表达式匹配例子

    Java正则表达式匹配例子 package com.ibm.test; import java.util.regex.Matcher; import java.util.regex.Pattern; ...

  5. java 正则匹配空格字符串 正则表达式截取字符串

    java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = ...

  6. java微信开发API解析(二)-获取消息和回复消息

    java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...

  7. 通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密码、邮政编码等合法性

    一个通用且常用的Java正则匹配工具,用以检查邮箱名.电话号码.用户密码.邮政编码等合法性. import java.util.regex.Matcher; import java.util.rege ...

  8. Java调用SqlLoader将大文本导入数据库

    Java调用SqlLoader将大文本导入数据库 业务场景:将一千万条数据,大约500M的文本文档的数据导入到数据库 分析:通过Java的IO流解析txt文本文档,拼接动态sql实现insert入库, ...

  9. Java Properties集合基础解析

    Java Properties集合基础解析 本期学习的properties集合是项目中经常用到的操作 什么是Properties集合? java.util.Properties集合继承于Hashtab ...

随机推荐

  1. 【温故知新】——HTML基础重要知识点复习

    前言:本文是自己在学习课程中的课程笔记,这里用来温故知新的,并非本人原创. 一.HTML快速入门(重点) 1.HTML概述 1.什么是HTML HTML : Hyper Text Markup Lan ...

  2. C# Graphics

    Graphics.FillPie 方法 填充由一对坐标.一个宽度.一个高度以及两条射线指定的椭圆所定义的扇形区的内部. Graphics.FillPie (Brush, Int32, Int32, I ...

  3. sql 从另外一张表查询数据存入本表. (有关联的)

    UPDATE friends INNER JOIN users ON friends.friendid=users.userid SET friends.friendname=users.userna ...

  4. js:argument

    引用:http://www.cnblogs.com/lwbqqyumidi/archive/2012/12/03/2799833.html    http://www.cnblogs.com/Fskj ...

  5. SAS学习经验总结分享:篇四—SQL过程

    SQL过程 SQL过程是实现对数据集或关系数据库的表进行操作的过程,对数据集或关系数据库的表进行查询.修改.创建表.删除数据.插入数据和更新数据等功能.提现了SAS对大型数据库管理系统通用的SQL语言 ...

  6. Oracle 11g新增not null的字段比10g快--新特性

    在11g之前添加一个not null的字段很慢.在11g之后就很快了.我们先做一个測试,然后探究下原理. SQL> select * from v$version; BANNER ------- ...

  7. 跟着实例学习设计模式(6)-生成器模式builder(创建型)

    生成器模式是创建型设计模式. 设计意图:将一个复杂的类表示与其构造相分离,使得同样的构建过程可以得出不同的表示. 实例类图: IVehicleBuilder:抽象建造者.为创建一个Vehicle对象并 ...

  8. C++复习:位运算

    与          a&b :    1010&1100=1000  或          a|b  :  1010|1100=1110 异或       a^b :     101 ...

  9. android 导入项目 项目中文字乱码问题

    乱码问题出现了几次,一直没有在意,今天又出现了,现总结如下: eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的.一般默认都是UTF-8或者GBK,当从外部导入的一个工 ...

  10. Spring属性编辑器详解

    1.常见的属性的注入:int,string,list,set,map 2.什么是属性编辑器及作用? (1)将spring配置文件中的字符串转换为相应的java对象 (2)spring内置了一些属性编辑 ...