Java Readline和regex匹配有问题

Java Readline和regex匹配有问题,java,regex,readline,bufferedreader,Java,Regex,Readline,Bufferedreader,我的计算机上有一个(ANSI)文本文件(filters.txt),每行上都有一个正则表达式 在我的主页上,我循环浏览RSS提要;每个项都传递给另一个方法,以检查filters.txt中的匹配项 问题是,似乎没有任何东西是匹配的 我传递给方法的字符串是正确的(已测试) 我的正则表达式正确(已测试) filters.txt中的输入“似乎”与文本文件中的输入相同 也许是断线或其他什么东西把图案匹配搞砸了?我是否需要使用其他工具来读取文本文件以完成此操作 以下是我的方法代码: public stat

我的计算机上有一个(ANSI)文本文件(filters.txt),每行上都有一个正则表达式

在我的主页上,我循环浏览RSS提要;每个项都传递给另一个方法,以检查filters.txt中的匹配项

问题是,似乎没有任何东西是匹配的

  • 我传递给方法的字符串是正确的(已测试)
  • 我的正则表达式正确(已测试)
  • 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,读取字符串和构造字符串是不同的——转义只与源代码本身有关。