java怎样用正则表达式查找文件夹下所有符合规范的文件

知道文件夹路径,怎样查找文件夹下符合规范的文件并提取文件名,急 在线等

第1个回答  2016-05-18
那么你的规范是什么呢?追问

这是例子:
8000000001-000001-20160510.txt

追答

给,拿去参考,毕竟你的规范我只能猜测这种数字格式

import java.io.File;

public class Test {
public static void main(String[] args) {
File f = new File("D:/mytest/runtime/logs");
if (!f.exists()) {
System.out.println("文件路径不存在");
} else {
System.out.println("符合规则的文件名如下:");
test(f);
}
}

public static void test(File readFile) {
if (readFile.isDirectory()) {
File[] files = readFile.listFiles();
for (File file : files) {
test(file);
}
} else {
String fileName = readFile.getName();
if (fileName.matches("^\\d{10}-\\d{6}-\\d{8}\\.\\w+$")) {
System.out.println(fileName);
}
}
}
}

追问

能不能用正则表达式直接匹配查找而不是查找完了再匹配校验?

追答

所有的核心程序都是这种实现;你说的除非你下载一个工具他支持这种表达式过滤,不过我不知道这个工具是什么,它实现的原理也是这种代码;比如windows搜索文件是前置字符匹配

本回答被提问者采纳

java用正则表达式判断文件路径格式是否正确。
\/\/ "^[A-z]:\\\\\\(.+?\\\\\\)*$" 不能确定深度 匹配0到多次就可以了String source = "z:\\\\java\\\\kl\\\\$kls\\\\";System.out.println(source.matches("^[A-z]:\\\\\\(.+?\\\\\\)*$"));

JAVA正则表达式怎么匹配所有符合要求的子字符串
正则有贪婪和非贪婪模式,所以你的最后集合只会有这两种的数据,不会出现如:zobo,boco。代码片段:Pattern pattern = Pattern.compile(".*?o");Matcher matcher = pattern.matcher("zoboco");while(matcher.find()){ String e=matcher.group(0);System.out.println(e);} 运行结果:zo bo co ...

java如何实现文件搜索功能
java实现文件搜索主要使用file类和正则表达式,如下示例:package com.kiritor.util;import java.io.File;import java.io.FileFilter;import java.util.Arrays;import java.util.Collections;import java.util.List;\/** * 文件的相关操作类 * * @author Kiritor *\/public class FileOperation {private ...

java文件搜索引擎(java搜索功能)
搜索引擎使用爬虫来抓取网页中的内容,然后将网页内容组织成一个数据库,最后用户可以根据自己的需要使用搜索引擎检索相关信息。 Java中的搜索引擎有很多,其中最流行的搜索引擎包括Google、Bing、Yahoo、Baidu等,它们都是大埋滑型的搜索引擎,可以搜索到全球各地的信息。此外,还有一些小型的搜索引擎,如DuckDuckGo、Yandex等,...

...个文件夹下有多个json格式的txt文本,如何读取所有txt文本内容。_百度...
用递归 下面方法可以得出所有.txt文件路径,用IO流进行读写操作即可 public void test(File f){\/\/把指定目录的文件夹对像传进来 File[] files=f.listFiles();\/\/对传进来的对象获得列表,返回File[]for (File file : files) {\/\/遍历File[],以便可以取得所有路径 File file2=new File(file....

java 正则表达式校验路径是否含有0907这样的一级文件夹
public static void main(String[] args) {String regex = ".*\\\\\\0901(\\\\\\.*|$)";System.out.println("\\\\\\192.168.1.123\\\\test\\\\2015\\\\0901".matches(regex));System.out.println("\\\\\\192.168.1.123\\\\test\\\\2015\\\\0901\\\\aaa".matches(regex));System.out.println("\\\\\\192.168...

java怎么用正则表达式根据?或者*来获取文件的?
看你就是中文没学好啊!是要问java中怎么使用正则表达式吧?Pattern pattern = Pattern.compile(param1); \/\/传入正则表达式字符串 Matcher matcher=pattern.matcher(param2); \/\/传入需要验证的字符串 Boolean flag = matcher.matches(); \/\/返回布尔值 后面那个问题不知道你想问什么......

java正则表达式是什么?
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。很可能你使用过Windows\/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*....

请问怎么用java正则表达式提取以下文本中指定的内容
正则表达式是根据规则来匹配文本,你这里只给了一个文本示例,所以无法建立其比较普遍通用的规则。以下是示例代码,可供参考。代码中对每一个你要的数据进行了一个单独匹配,也可以通过一次匹配取出全部的数据。import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { publi...

用JAVA语言编写正则表达式匹配指定的汉字的方法
onkeyup= "value=value.replace(\/[^\一-\龥]\/g, ' ') " onbeforepaste= "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(\/[^\一-\龥]\/g, ' ')) "用正则表达式限制只能输入全角字符: onkeyup= "value=value.replace(\/[^\＀-\￿]\/g,...

相似回答