Java中的正则表达式模式匹配

时间:2012-10-11 11:08:05

标签: java regex match filenames

我需要帮助才能完成以下任务:

我在数组中有以下多个文件:

jack+0.txt
jack+2.txt
jack+4.txt
tim+0.txt
tim+2.txt
tim+4.txt
raph+0.txt
raph+2.txt
raph+4.txt
wells+0.txt
wells+2.txt
wells+4.txt
etc.

我想编写一个程序来执行以下操作:

if the filename is like *0.txt, a++;
if the filename is like *2.txt, b++;
if the filename is like *4.txt, c++;

所需的核心帮助是使用正则表达式(在Java中)。

4 个答案:

答案 0 :(得分:2)

这个想法,如果你有少量不同的结局:

if (filename.endsWith("0.txt")) a++;

答案 1 :(得分:2)

我只是在加号上进行字符串拆分,然后检查第二部分。

String[] parts = s.split("+");
if (parts[1].equals("0.txt") {

} else // the rest of the tests

答案 2 :(得分:1)

for (File file : files) {
    if (file.getName().matches(".*0[.]txt") {
        a++;
    } else if ...
}

答案 3 :(得分:0)

这将取出文件名中的数字,然后你可以做一个切换案例

string filename;

int category = Integer.parseInt(filename.substring(filename.length() - 5, filename.length() - 4))