gpt4 book ai didi

java - 使用模式组查找第一个单词

转载 作者:行者123 更新时间:2023-11-30 07:31:38 25 4
gpt4 key购买 nike

我在查找以下文件名中的第一个单词时遇到问题。

12345.pdf ,
12345 203 1525345.pdf ,
12345_xxx.pdf ,
12345-xxx.pdf ,
12345 203-1525345.pdf ,
Smith 12345 03012016.pdf ,
Smith 12345 03012016-1.pdf

我正在使用模式 ({ln}\\w+?)[_\\s-](\\w+?_)?({dc}\\w+?).(\\w+) 并获取键 ln 的值 (value = matcher.group("ln"))。

请帮忙。

这是我的程序,每次我只需要值 ln 作为第一个单词。

    String[] fileName ={"12345.pdf","12345 203    1525345.pdf","12345_xxx.pdf","12345-xxx.pdf","12345 203-1525345.pdf","Smith 12345 03012016.pdf","Smith 12345 03012016-1.pdf"};
String pat = "({ln}\\w+?)[_\\s-](\\w+?[_\\s-])?({dc}\\w+?).(\\w+)";
Pattern fileNamePattern = new Pattern(pat);
for(String fileName1 : fileName)
{
Matcher matcher = fileNamePattern.matcher(fileName1);
String value = null;
if (matcher.matches())
{
value = matcher.group("ln");
}
System.out.print(fileName1 +" : ");
System.out.println(value);
}

}

}

和值:-

12345.pdf : 12345
12345 203 1525345.pdf : 12345
12345_xxx.pdf :12345
12345-xxx.pdf : 12345
12345 203-1525345.pdf : 12345
Smith 12345 03012016.pdf : smith
Smith 12345 03012016-1.pdf :smith

最佳答案

^[a-zA-Z0-9]+(?=\b|_)

您可以简单地将其与多行模式一起使用。请参阅演示。

https://regex101.com/r/kZ2iZ8/1

关于java - 使用模式组查找第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36028535/

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