例如: abc_ddd_20170910_01.REQ(顺序不固定就这五块)
取成: [abc_ddd_];{sysdate-1:yyyymmdd};[_];{string:2};[.REQ]
Pattern pattern = Pattern.compile("[a-z]+_[a-z]+_");
Matcher matcher = pattern.matcher(文件名);
System.out.println(matcher.group(0)); // abc_ddd_
Pattern pattern = Pattern.compile("\\d{8}"); // 20170910
Pattern pattern = Pattern.compile("\\d+\\.[A-Z]{3}"); // 01.REQ
因为你实在只有一条数据的例子,所以我可以写给你,但是不保证通用性
Pattern pattern = Pattern.compile("[a-z]+_[a-z]+_");
Matcher matcher = pattern.matcher(文件名);
string s1 = matcher.group(0);
pattern = Pattern.compile("\\d{8}");
matcher = pattern.matcher(文件名);
string s2 = matcher.group(0);
pattern = Pattern.compile("\\d+\\.[A-Z]{3}");
matcher = pattern.matcher(文件名);
string s3 = matcher.group(0);
string result = "["+s1+"];{sysdate-1:"+s2+"};[_];{string:2};["+s3.split(".")[1]+"]"
Pattern pattern = Pattern.compile("[a-z]+(_[a-z])*");
Matcher matcher = pattern.matcher(文件名.split(".")[0]);
string s1 = matcher.group(0);
pattern = Pattern.compile("\\d{8}");
matcher = pattern.matcher(文件名);
string s2 = matcher.group(0);
pattern = Pattern.compile("\\d+\\.[A-Za-z]{3}");
matcher = pattern.matcher(文件名);
string s3 = matcher.group(0);
string result = "["+s1+"];{sysdate-1:"+s2+"};[_];{string:2};["+s3.split(".")[1]+"]";
24654657657567