Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式拆分钻取文件_Java_Regex - Fatal编程技术网

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

Java 使用正则表达式拆分钻取文件,java,regex,Java,Regex,我这里有个文件,是垃圾堆 T01 X064900Y049200 X065900 X066900 X067900 X068900 X069900 T02 X062900Y048200 Y049200 Y050200 Y053700 X063900 X064900 X065900 X046350 我想用T*分割它的内容,使用 Java正则表达式 在这里,我将文件内容读入字符串部分 然后String[]tools=parts.split(“T\\d+”); 但是它不起作用,最好使用什么正则表达

我这里有个文件,是垃圾堆

T01
X064900Y049200
X065900
X066900
X067900
X068900
X069900
T02
X062900Y048200
Y049200
Y050200
Y053700
X063900
X064900
X065900
X046350  
我想用T*分割它的内容,使用 Java正则表达式 在这里,我将文件内容读入
字符串部分
然后
String[]tools=parts.split(“T\\d+”);
但是它不起作用,最好使用什么正则表达式。

在字母“t”处拆分。换行符可以防止第一行被拆分

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

即使不使用
split
方法也可以完成,但使用捕获组:


这是正则表达式:
(?这是您的解决方案。我假设您需要以字母“T”开头的单独字符串

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

每个
X
术语都在一行中,由某种类型的换行符分隔吗?您的预期输出是什么?您需要根据所需内容之间的间距进行拆分。我想您的意思是
拆分(“T\\d+”)
使用两个反斜杠\\而不是两个斜杠
拆分((?=T\\d)”)
应该可以正常工作。