gpt4 book ai didi

java - 正则表达式语句

转载 作者:行者123 更新时间:2023-11-29 10:18:44 25 4
gpt4 key购买 nike

我从来都不擅长正则表达式,而且我似乎无法理解...

我正在尝试按照这些行匹配语句(这是我正在阅读的文本文件中的两行)

Lname Fname 12.35 1
Jones Bananaman 7.1 3

目前我正在使用这个 while 语句

reader.hasNext("\\w+ \\w+ \\d*\\.\\d{1,2} [0-5]")

但是并没有进入while语句。当我删除 while 时,程序可以很好地读取文本文件。代码段是这样的:

private void initializeFileData(){
try {
Scanner reader = new Scanner(openedPath);

while(reader.hasNext("\\w+ \\w+ \\d*\\.\\d{1,2} [0-5]")){
employeeInfo.add(new EmployeeFile(reader.next(), reader.next(), reader.nextDouble(), reader.nextInt(), new employeeRemove()));
}
for(EmployeeFile element: employeeInfo){
output.add(element);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

最佳答案

单词之间的空格使用\s字符类:

while(reader.hasNext("\\w+\\s\\w+\\s\\d*\\.\\d{1,2}\\s[0-5]"))

更新:

根据 Scanner 类的 javadoc,默认情况下它使用空格拆分它的标记。您可以使用 ScanneruseDelimiter(String pattern) 方法更改它使用的分隔符。

private void initializeFileData(){
try {
Scanner reader = new Scanner(openedPath).useDelimiter("\\n");
...
while(reader.hasNext("\\w+\\s\\w+\\s\\d*\\.\\d{1,2}\\s[0-5]")){
...

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

关于java - 正则表达式语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com