使用正则表达式拆分钻取文件

时间:2017-07-09 11:35:36

标签: java regex

我这里有一个文件是转储

T01
X064900Y049200
X065900
X066900
X067900
X068900
X069900
T02
X062900Y048200
Y049200
Y050200
Y053700
X063900
X064900
X065900
X046350  

我想把它的内容拆分为T *“T *必须包括”使用 Java正则表达式    我在这里把文件内容读到string parts 然后String [] tools = parts.split("T\\d+"); 但是它不起作用,使用的最佳正则表达方式是什么。

3 个答案:

答案 0 :(得分:0)

在字母" T"处分开。换行符使第一行不被分割。

String[] tools=parts.split("\n(?=T)");

答案 1 :(得分:0)

即使没有split方法,也可以使用捕获组来完成:

这是正则表达式:((?<=T)[^T]*)

答案 2 :(得分:0)

这是你的解决方案。我假设你期望单独的字符串以字母“T&#39;”开头。

package com.sujit;

import java.util.regex.Pattern;

public class Testt {
    public static void main(String[] args)
    {
        String txt="T01X064900Y049200X065900X066900X067900X068900X069900T02X062900Y048200Y049200Y050200Y053700X063900X064900X065900X046350";
            Pattern ptn = Pattern.compile("T");
            String[] parts = ptn.split(txt);
            for(String p:parts){
                if(!p.isEmpty()){
                    System.out.println("T"+p);
                }               
            }
    }
}

输出:

T01X064900Y049200X065900X066900X067900X068900X069900 T02X062900Y048200Y049200Y050200Y053700X063900X064900X065900X046350