java Regex匹配及解析文本
用一个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学习笔记之正则表达式
- Hdu 1052 Tian Ji -- The Horse Racing
- 15.8.6 AUTO_INCREMENT Handling in InnoDB
- mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)
- VPS -Digital Ocean -初试以及VPN的搭建
- JS --正则表达式验证、实战之邮箱模式
- JAVA-封装
- 学习面试题(day01)
- 构建轻量级的Table View注意事项[UIKit]
- [Kafka] - Kafka 安装介绍
- Tomcat NIO
- Spring源码学习
- jsp内置对象-response对象
- 在线图标制作,格式转换 ICON
- MongoDB导入导出以及数据库备份以及.dat数据
- thymeleaf标签使用方法总结
- %08lx
- mongodb 学习1
- RabbitMQ安装详解(centos6.8)(转自:http://www.cnblogs.com/zhen-rh/p/6862350.html)
- 51Nod:1085 背包问题
热门文章
- mysql跨服务器查询
- Android5 Zygote 与 SystemServer 启动流程分析
- scramble-string——两个字符串经过树化并旋转后是否一致、递归、动态规划
- poj 2479 Maximum sum(递推)
- Mongo-Hadoop
- 导出txt格式的说明书
- VueJS构造器:new Vue({})
- cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法
- OpenCV视频读取播放,视频转换为图片
- leetCode 95.Unique Binary Search Trees II (唯一二叉搜索树) 解题思路和方法