Java 在一种方法中使用3个可能的正则表达式扫描文件
我试图从包含3.txt文件(相同信息)但顺序不同的文件夹中检索数据 我需要得到的数据是:日期文本编号(一行) 但是我的文件的结构对于每个人来说都是独一无二的 文件1: 文件2: 文件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*)(
(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