我的计算机上有一个(ANSI)文本文件(filters.txt),每行都是一个正则表达式。
在我的主要内容中,我循环播放RSS提要;每个项目都传递给另一个方法来检查filters.txt中的匹配项。
问题似乎没有什么匹配。
这是我方法的代码:
public static boolean filtermatch(String rsstitle) {
boolean result = false;
try {
BufferedReader br = new BufferedReader(new FileReader("filters.txt"));
String strLine;
while ((strLine = br.readLine())!= null && result == false) {
if(Pattern.matches("(?i)" + strLine, rsstitle)) {
result = true;
}
}
br.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
return result;
}
编辑: 我现在只有过滤器:
\\[HorribleSubs\\].*Chihayafuru.*
应该匹配“[HorribleSubs] Chihayafuru - 12 [720p] .mkv”但它不是。如果我在程序中定义正则表达式,它会匹配它。
答案 0 :(得分:2)
不要在文件中放入双反斜杠:Java会在“\\\\”中对它们进行转换。它读取一个反斜杠,如“\\”。