2009-05-04 7 views
1

전체 문자열로 표시된 텍스트 파일 (또는 XML 파일)을 특정 문자열을 검색 (또는 일치)하려면 어떻게합니까?자바에서 텍스트 파일을 단일 단위로 표현하고 텍스트에서 일치하는 문자열

내가 BufferedReader의 객체를 생성 한

: 스캐너 클래스를 사용

//Scanner scantext = new Scanner(input); 
//Scanner scantext = new Scanner(input).useDelimiter(""); 
Scanner scantext = new Scanner(input).useDelimiter("\n"); 
while (scantext.hasNext()) { ... } 

이 같은

BufferedReader input = new BufferedReader(new FileReader(aFile)); 

후 나는 다른 구분 기호를 지정하기 위해 옵션과 함께 스캐너 클래스를 사용하는 시도를, 이렇게하면 텍스트를 한 줄씩 읽거나 한 단어 씩 읽을 수 있지만 때로는 텍스트에서 처리하고 싶기 때문에 나에게 도움이되지 않습니다.

</review><review> 

저는 다음과 같이 말하고 싶습니다. ""을 찾을 때까지 텍스트의 어느 곳에서나 "<review>"을 찾으면 다음 줄 (또는 텍스트)으로 무엇인가하십시오. 문제는 <review></review>이 텍스트의 다른 위치에 있으며 때로는 다른 텍스트에 붙어 있기 때문에 (구분 기호로 빈 공간이 도움이되지 않습니다).

자바 (Pattern 및 Matcher 클래스)에서 정규 표현식 API를 사용할 수 있다고 생각했지만 특정 문자열이나 줄과 일치하는 것으로 보입니다. 텍스트를 하나의 연속 문자열로 사용하고 싶습니다 (적어도 이것은 내가 그들에 관해 읽은 것에서의 나의 인상이었다). 이 경우 사용해야 할 구조/방법/클래스를 알려주시겠습니까? 고맙습니다.

+0

나는 그것을 게시 한 후 여러 번 텍스트를 편집 했으므로 모든 것이 지금 읽혀지기를 바란다. (볼 수없는 것들에 대해 미안하다.) – user42155

답변

3

정규 표현식으로 XML을 구문 분석하지 마십시오. 고통에 이르게합니다. 이미 이 매우 많습니다. existingXMLAPIs이 Java에 이미 있습니다. 왜 그들을 재발견하려고합니까?

어쨌든, 텍스트 파일에서 문자열을 검색하려면 다음을 수행해야합니다

  1. 로드는 문자열 (example)
  2. 로 파일은
  3. 사용하십시오 Matcher에 대한 검색 할 Pattern 만들기 모든 일치를 반복합니다.
+0

xom - http://www.xom.nu/ - 내 fav 오브 라이트 – lucas

1

구조화 된 XML 파일로 작업하려는 것처럼 보이지만을 조사 할 것을 제안합니다.또는 기타 APIs에 내장되어 문서를 구문 분석합니다.

1

XML 구문 분석기를 사용하십시오.

또는 example과 같이 xpath를 사용하십시오. 나는 그들이 특정 문자열 또는 라인과 일치하는 것, 내가 하나의 연속 문자열로 텍스트를 갖고 싶어 자바 (패턴 및 Matcher를 클래스)에서 정규 표현식 API를 사용하지만 수 있다는 생각

1

또한 API를 구문 분석 XML을 사용하는 것이 좋습니다 것입니다 ...하지만 당신은 단지 "검토"태그의 경우 뭔가를 원하는대로, 어쩌면 당신은

0

내가 여기에 생각 ... SAX를 DOM보다 더 사용할 수 있습니다 우리는 문자열로 텍스트 파일에서 개별 라인을 복사 한 후 문자열 (라인)와 문자열 (검색 문자열)과 일치하는

을 시도하지만 같은 메타 문자를 Executing (실행 중)/또는 동안 오류가 발생 # 등