2014-10-03 21 views
-1

我无法使用正则表达式从文件名中保存特定的字符串。文件名是这种格式:正则表达式在java中的文件名

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(???,???) 

任何人有什么想法?谢谢

+0

快速和肮脏的 - 记号化的 “_”,并获得与指数1和2元;您也可以尝试使用Apache的StringUtils制作另一种方法。实际上,如果你的格式不变,你可以在硬编码索引上进行子串处理。只要你可以避免正则表达式;) – hovanessyan 2014-10-03 08:47:04

回答

1

如何:

^PM_IG(\\d{5})_(\\d{1,2})_ 

ZZZZZ是在第1组
XX是第2组

+0

谢谢,正是我需要的。 :) – 2014-10-03 09:01:29

+0

@ArnoldCristobal:不客气。 – Toto 2014-10-03 09:02:43