2017-01-31 8 views
1

텍스트 파일 내에서 검색하고 이전 행이 "CR"로 시작하지 않을 때 "CD"로 시작하는 모든 행을 찾으려면 정규 표현식이 필요합니다.레코드를 이전 레코드와 비교하는 정규식

아래 샘플 데이터에서 선행 CR 레코드가없는 CD 행이있는 끝 부분을 확인하십시오. 그 CD 행을 찾기 위해 내 수색이 필요합니다.

HDPM0021535 11ABC CO. D 
CRVA MC OP-MATHER CA 1053 
CD1010 BD5275555 
TR+00000001+00000000+0000024760 
HDPM0021535 11ABC CO. D 
CROMNICARE RENO 48308 9475 
CD3055 BO9182000 
CROCR OF SANTA ROSA 48218 879 
CD3055 BC9832555 
TR+00000002+00000000+0000000695 
HDPM0021535 11ABC CO. D 
CD2037 AF7944888 
CD2037 AF7944888 
TR+00000002+00000001-0000000089 
TT+00000008+0000196660200 

고맙습니다!

+0

을해야합니까? – revo

+0

지금은 Windows 7 컴퓨터에서 Notepad ++의 정규식 옵션을 사용하여 일반 텍스트 파일을 검색하고 있습니다. 결국 데이터베이스에서 자동으로 플래그를 지정하는 Oracle SQL 보고서를 작성합니다. –

+0

'(? : \ G (?! ^) \ R? |^(? CR). * \ R) \ KCD. *'를 사용해보십시오. 첫 번째 줄 잡는 법을 모르겠다. –

답변

0

당신이

(?:\G\R?|^(?!CR).*\R)\KCD.* 

세부를 사용할 수 있습니다 보인다

  • (?:\G\R?|^(?!CR).*\R)

    - 문서 또는 이전 성공적인 일치 (\G)의 끝의 시작 하나가 선택 LINEBREAK에 따라 (\R?) 또는 줄 시작 (^) 뒤에 CR ((?!CR))이오고 줄 바꿈 이외의 0 개 이상의 문자가 나오는 경우
  • CD.*
  • 지금까지 일치하는 텍스트를 폐기 일치 리셋 운영자 - - ARS ( .*)은 줄 바꿈 ( \R)
  • \K에 따라 CD은 줄 바꿈 문자 이외의 0+ 문자 (뒤를 .은 줄 바꿈 일치) OFF 어떤 언어/환경에서

enter image description here