gpt4 book ai didi

java - 文件名的正则表达式

转载 作者:行者123 更新时间:2023-12-02 07:27:24 24 4
gpt4 key购买 nike

我的文件格式为 *C:\Temp\myfile_124.txt*

我需要一个正则表达式,它将只给出数字“124”,即下划线之后和扩展名之前的任何内容。

我尝试了很多方法,最新的是

(.+[0-9]{18,})(_[0-9]+)?\\.txt$

我没有得到所需的输出。有人可以告诉我出了什么问题吗?

       Matcher matcher = FILE_NAME_PATTERN.matcher(filename);
if (matcher.matches() && matcher.groupCount() == 2) {
try {
String index = matcher.group(2);
if (index != null) {
return Integer.parseInt(index.substring(1));
}
}
catch (NumberFormatException e) {

}

最佳答案

第一部分 [0-9]{18,} 表明您至少有 18 个数字,但您没有。

通常使用正则表达式,使表达式尽可能简单是个好主意。我建议尝试一下

_([0-9]+)?\\.txt$

注意:您必须调用 find() 才能使其执行查找,否则会显示“未找到匹配项”

<小时/>

这个例子

String s = "C:\\Temp\\myfile_124.txt";
Pattern p = Pattern.compile("_(\\d+)\\.txt$");
Matcher matcher = p.matcher(s);
if (matcher.find())
for (int i = 0; i <= matcher.groupCount(); i++)
System.out.println(i + ": " + matcher.group(i));

打印

0: _124.txt
1: 124

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

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