展开串
实际开发中,常常会出现用到一批文件,而这些文件的文件名有某种规律,我们在表述的时候,往往习惯简写,但这样程序又不好识别。
比如:
c:/abc/xyz/k[11..19].dat
实际表示的就是:
c:/abc/xyz/k11.dat
c:/abc/xyz/k12.dat
c:/abc/xyz/k13.dat
c:/abc/xyz/k14.dat
c:/abc/xyz/k15.dat
c:/abc/xyz/k16.dat
c:/abc/xyz/k17.dat
c:/abc/xyz/k18.dat
c:/abc/xyz/k19.dat
本题目要求是:给定一个含有简写的串,要求展开为所有文件名。
简写的格式为:[整数..整数]
/* */ import java.util.regex.*; public class ZhanKai { public static void main(String[] args) { String s = "c:/abc/[8]xyz/k[11..19].dat"; Pattern pt = Pattern.compile("\\[([0-9]+)\\.\\.([0-9]+)\\]"); Matcher mc = pt.matcher(s); if(mc.find()){ int a = Integer.parseInt(mc.group(1)); int b = Integer.parseInt(mc.group(2)); String s1 = s.substring(0,mc.start()); //截取首段 String s2 = s.substring(mc.end()); //截取尾段 for(int i=a; i<=b; i++) System.out.println(s1 + i + s2); } } }
02-05正则表达式进阶_展开串,布布扣,bubuko.com
原文:http://blog.csdn.net/u012897654/article/details/24551137