2011-12-31 1 views
0

내 컴퓨터에 (ANSI) 텍스트 파일 (filters.txt)이 있습니다. 각 줄마다 정규 표현식을 사용합니다.Readline과 regex가 일치하는 데 문제가 있습니다.

내 주에서는 RSS 피드를 반복합니다. 각 항목은 filters.txt에서 일치하는 항목을 확인하기 위해 다른 메소드로 전달됩니다.

문제는 아무것도 일치하지 않는 것 같습니다.

  • 나는 방법에 전달하고있어 문자열은 올바른 (테스트)
  • 내 regexps '에 "는 것 같다"텍스트 파일에서와 동일하게 filters.txt를에서 올바른 (테스트)
  • 입력입니다
  • 아마도 줄 바꿈이나 다른 것이 패턴 일치를 망칠 것입니까? 텍스트 파일을 읽으려면 다른 도구를 사용해야합니까? 12 [720 -
    \\[HorribleSubs\\].*Chihayafuru.* 
    

    가 일치해야 하는가

    "[HorribleSubs] 치하야 후루을 :

    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; 
    } 
    

    편집 : 만 내가 지금에이 필터 여기

내 메소드의 코드입니다 ] .mkv "아직 그렇지 않습니다. 비록 내가 프로그램에서 정규식을 정의한다면 그것을 일치시킵니다.

+0

몇 가지 예가 도움이 될 수 있습니다. –

+0

추가됨. < – lelouch

+0

'새 FileReader ("filters.txt", "Cp1252")는 파일이 Windows 코드 페이지 1252 (Latin1의 Windows 변형)에 있음을 명시 적으로 나타냅니다. 이제는 운영 체제 기본값을 사용합니다. –

답변

2

파일에 이중 백 슬래시를 넣지 마십시오. Java는 "\\\\"로 변환합니다. "\\"와 같은 단일 백 슬래시를 읽습니다.

+0

Aaaaaaaaannnnnnnnnndddddddd 작동 중! 12 개 감사합니다. 자신을 알아 내지 못했을 것입니다. – lelouch

+0

@lelouch 그래, 문자열을 읽는 것은 문자열을 읽는 것과 같지 않습니다. 이스케이프는 소스 자체에서만 관련이 있습니다. –

관련 문제