zoukankan      html  css  js  c++  java
  • 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)来提取。

  • 相关阅读:
    webpack第一节(4)
    webpack第一节(3)
    webpack第一节(2)
    webpack第一节(1)
    node 下载 解压 重命名
    node 文件操作
    js判断设备(转)
    【CSS3】transform-origin以原点进行旋转 (转)
    手机(转)
    mysql最大连接数问题
  • 原文地址:https://www.cnblogs.com/surprizeFuture/p/5221055.html
Copyright © 2011-2022 走看看