java中文件名的正则表达式

java中文件名的正则表达式,java,regex,Java,Regex,使用正则表达式保存文件名中的特定字符串时遇到问题。文件名的格式如下: PM_IGZZZZZ_XX_YYYYMMDDHHmm_01.csv XX can be 5, 15 or 60 ZZZZZ can be any numerical value 00000 to 99999 我想得到IG80034和XX的值。我的代码是: String test = file.getName(); // Get IGZZZZZ String value1 = test.replace(???,???) //

使用正则表达式保存文件名中的特定字符串时遇到问题。文件名的格式如下:

PM_IGZZZZZ_XX_YYYYMMDDHHmm_01.csv

XX can be 5, 15 or 60
ZZZZZ can be any numerical value 00000 to 99999
我想得到IG80034和XX的值。我的代码是:

String test = file.getName();
// Get IGZZZZZ
String value1 = test.replace(???,???)
// GET XX
String value21 = test.replace(???,???)
有人知道吗?谢谢你

怎么样:

^PM_IG(\\d{5})_(\\d{1,2})_
ZZZZZ
属于第1组

XX
在第2组中。

快速且不干净-在“u”上标记并获取索引为1和2的元素;您还可以尝试使用Apache的StringUtils创建另一个方法。事实上,若你们的格式是常数,你们可以在硬编码索引上加上子字符串。尽可能避免使用正则表达式;)谢谢,这正是我需要的。:)