2 lpploverou LPPloveROU 于 2013.08.12 16:54 提问

使用pattern查找文件(正则表达式)

在文件夹中的文件:

myfile_mark_1.mp4
myfile_john_2.mp4
myfile_jake_3.mp4
myfile_tristan_4.mp4
yourfile_mark_1.mp4

如果我要查找前缀包含myfile_,后缀不大于3.mp4的(比如"_3.mp4", "_2.mp4", "_1.mp4")。
因此查找结果应该是:

myfile_mark_1.mp4
myfile_john_2.mp4 and
myfile_jake_3.mp4

不知道怎么实现?

我的代码:

String myDirectory = Environment.getExternalStorageDirectory().getAbsolutePath();
File f = new File(myDirectory);
     if(f.exists() && f.isDirectory()){
         final Pattern p = Pattern.compile("myfile_*\\_(^0*(1?\\d|%d)$).mp4"); // I know I really have a stupid mistake on the regex;

         File[] flists = f.listFiles(new FileFilter(){
             @Override
            public boolean accept(File file) {
                 return p.matcher(file.getName()).matches();
            }
         });
         String s = "wait a minute, i'm debugging";
     }

2个回答

redCoral_
redCoral_   2013.08.12 17:15
已采纳

正则表达式的要求相当简单:

myfile_.*_[123]\\.mp4
hwhaocool
hwhaocool   2016.03.21 20:52
 "myfile_.*?[0-3]\\.mp4"
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!