Java Readline和regex匹配有问题
我的计算机上有一个(ANSI)文本文件(filters.txt),每行上都有一个正则表达式 在我的主页上,我循环浏览RSS提要;每个项都传递给另一个方法,以检查filters.txt中的匹配项 问题是,似乎没有任何东西是匹配的Java Readline和regex匹配有问题,java,regex,readline,bufferedreader,Java,Regex,Readline,Bufferedreader,我的计算机上有一个(ANSI)文本文件(filters.txt),每行上都有一个正则表达式 在我的主页上,我循环浏览RSS提要;每个项都传递给另一个方法,以检查filters.txt中的匹配项 问题是,似乎没有任何东西是匹配的 我传递给方法的字符串是正确的(已测试) 我的正则表达式正确(已测试) filters.txt中的输入“似乎”与文本文件中的输入相同 也许是断线或其他什么东西把图案匹配搞砸了?我是否需要使用其他工具来读取文本文件以完成此操作 以下是我的方法代码: public stat
- 我传递给方法的字符串是正确的(已测试)
- 我的正则表达式正确(已测试)
- 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.*
应该匹配“[horblesubs]Chihayafuru-12[720p].mkv”,但它不是。如果我在程序中定义正则表达式,它就会匹配它。不要在文件中加上双反斜杠:Java将在“\\\\”中转换它们。它读取一个反斜杠,如“\\”Added,检查end>
newfilereader(“filters.txt”,“Cp1252”)
明确指出该文件位于Windows代码页1252,Latin1的Windows变体中。现在它使用操作系统默认值。@JoopEggen:我同意您应该指定编码,但FileReader不允许您这样做。您必须使用围绕文件InputStream的InputStreamReader。aaaaaaannnnnnnnnndddddddddd它正在工作!非常感谢,我自己永远也不会明白:)@lelouch-Yep,读取字符串和构造字符串是不同的——转义只与源代码本身有关。