Java 在一种方法中使用3个可能的正则表达式扫描文件

Java 在一种方法中使用3个可能的正则表达式扫描文件,java,regex,java.util.scanner,Java,Regex,Java.util.scanner,我试图从包含3.txt文件(相同信息)但顺序不同的文件夹中检索数据 我需要得到的数据是:日期文本编号(一行) 但是我的文件的结构对于每个人来说都是独一无二的 文件1: 文件2: 文件3: 任何建议 (Date)\/?\s*(text)\/?\s*(number) 试试这个。抓取第1、2、3组。参见演示 这种模式应该可以: (?i)(日期)(文本)(数字) 代码中的Java字符串: var pattern = "(?i)(date)(?:\\/|\\s*)(text)(?:\\/|\\s*)(

我试图从包含3.txt文件(相同信息)但顺序不同的文件夹中检索数据

我需要得到的数据是:日期文本编号(一行) 但是我的文件的结构对于每个人来说都是独一无二的

文件1: 文件2: 文件3: 任何建议

(Date)\/?\s*(text)\/?\s*(number)
试试这个。抓取第1、2、3组。参见演示


这种模式应该可以:

(?i)(日期)(文本)(数字)

代码中的Java字符串:

 var pattern = "(?i)(date)(?:\\/|\\s*)(text)(?:\\/|\\s*)(number)";
输出:

Match 1:    
    0: [11,32] Date/text number
    1: [11,15] Date
    2: [16,20] text
    3: [26,32] number
Match 2:
    0: [45,66] Date Text/number
    1: [45,49] Date
    2: [55,59] Text
    3: [60,66] number
Match 3:
    0: [81,107] Date Text number
    1: [81,85] Date
    2: [91,95] Text
    3: [101,107] number

但是一个正则表达式不能匹配所有结果!
(Date)\/?\s*(text)\/?\s*(number)
 var pattern = "(?i)(date)(?:\\/|\\s*)(text)(?:\\/|\\s*)(number)";
Match 1:    
    0: [11,32] Date/text number
    1: [11,15] Date
    2: [16,20] text
    3: [26,32] number
Match 2:
    0: [45,66] Date Text/number
    1: [45,49] Date
    2: [55,59] Text
    3: [60,66] number
Match 3:
    0: [81,107] Date Text number
    1: [81,85] Date
    2: [91,95] Text
    3: [101,107] number