我正在使用java并尝试使用
过滤文件filename.matches(".*pirates\\-wp8\\.cfg");
为什么" cfg \ pirates-wp8.cfg"不匹配regexp"。* pirates \ -wp8 \ .cfg"
我也试过这个:
filename.matches(".*pirates-wp8\\.cfg");
不起作用。
答案 0 :(得分:0)
错误是双斜线。 “*海盗\ -wp8 \ .CFG” - 这个正则表达式工作
答案 1 :(得分:0)
我对Java很新,但可能会有所帮助。 我为你做了一个tiny example,似乎有效。
import java.lang.*;
import java.io.*;
class Ideone {
public static void main (String[] args) throws java.lang.Exception {
String filename = "cfg\\pirates-wp8.cfg";
boolean b = filename.matches(".*pirates-wp8\\.cfg");
System.out.println(b);
}
}
答案 2 :(得分:0)
你的正则表达式字符串的开头是。*?因为。* 本身是贪婪的并且吃掉了匹配的整个字符串,然后可以&#39 ; t匹配正则表达式的其余部分。顺便说一句,连字符并不需要被转义,尽管它实际上并没有错。所以你的行必须是:
filename.matches(".*?pirates-wp8\\.cfg");