gpt4 book ai didi

java - 正则表达式确定文件是否是sql文件

转载 作者:行者123 更新时间:2023-12-01 22:19:40 26 4
gpt4 key购买 nike

我需要检查文件是否是基于字符串的 SQL 文件,例如:

com/cerner/careconcepts/allergy/data/action/sql/ActivityDataReltnQuery.sql

所以我想如下的正则表达式应该足够了?这适用于 http://regexpal.com/但不在我的代码中:

fileName.matches(".sql$")

这是我试图在 JarFile 中查找所有“.sql”文件的代码:

package jarreader;

import java.io.File;
import java.io.IOException;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

public class processJar {

public static void main(String[] args){

//File file = new File(".");
//for(String fileNames : file.list()) System.out.println(fileNames);

try {
JarFile jarFile = new JarFile("allergies-2.1.2.jar");
Enumeration enumeration = jarFile.entries();
while (enumeration.hasMoreElements())
getSqlContent(enumeration.nextElement());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private static void getSqlContent(Object obj)
{
JarEntry entry = (JarEntry)obj;
String name = entry.getName();

if(name.matches(".sql$")){
System.out.println(name);
}


}
}

根据上述正则表达式,我没有得到任何输出名称。

最佳答案

在您的正则表达式 .sql$ 中,. 匹配单个字符,之后它需要 sql。所以它不匹配任何名称。name.matches(".sql$") 应该是

name.matches(".*\\.sql$")

关于java - 正则表达式确定文件是否是sql文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com