读书人

java 正则表达式,该如何解决

发布时间: 2013-12-16 23:49:16 作者: rapoo

java 正则表达式
我写了一个正则表达式,判断字符串里面是否包含了"_4个数字.csv"的字符串,但发现若字符中含有"_5个数字.csv"时,程序运行很慢,请大家帮我看一下,我没有多少正则表达式的经验,写的很差,如果可以优化的话,请大佬们帮我优化一下。


import java.util.regex.Pattern;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "20131210_19045.csv,a.csv,";
System.out.println(""+Pattern.matches("(\\w*?\\W*?)*?(\\w?_\\d{4}.csv,)+(\\w*?\\W*?)*?", str));
}

}

[解决办法]
试试这个
String str = "20131210_19015.csv,a.csv,";
System.out.println(""+Pattern.matches(".*(?<=_)(\\d{4})(?=.csv).*", str));

[解决办法]
.*?_\\d{4}\\.csv.*
[解决办法]

String str = "20131210_19045.csv,a.csv,";
System.out.println(str.matches(".*_\\d{4}\\.csv.*"));

[解决办法]
@Test
public void test()
{
String str = "20131210_19015.csv,a.csv,";
System.out.println(""+Pattern.matches(".*_\\d{4,}+\\.csv.*", str));
}


虽然成功了,但是感觉还是慢。。。

读书人网 >J2SE开发

热点推荐