메모장 ++ 정규식 : 세미콜론이 필드 구분 기호 인 경우 하나 이상의 텍스트 값 세미콜론을 대시로 바꿉니다.


0

나는 조금 어려움을 겪고있다. 내가 조작 해야하는 파일은 필드 구분 기호로 세미콜론이있는 CSV입니다. 일부 데이터 세트에는 세미콜론을 포함하는 주석이 추가되었습니다. 운 좋게도이 주석은 "로 시작하고 끝납니다.

예:

;;;"sometext many words or few ; more text; even more text";;;;;;

"사이의 모든 세미콜론을 교체해야하지만 텍스트를 유지하십시오. 도와 주셔서 감사합니다.

샘플 데이터 세트 :

Before Regex find & Replace:  
Fieldtitles: f1;f2;f3;f4;f5;f6;f7;f8;f9;f10;f11  
Dataset1: ;;text;text;;text;text;text;text;text;text  
Dataset2: text;"text text text ; text text";text;text;text;text;text;text;text;text;text

After Regex find & Replace:  
Fieldtitles: f1;f2;f3;f4;f5;f6;f7;f8;f9;f10;f11  
Dataset1: ;;text;text;;text;text;text;text;text;text  
Dataset2: text;"text text text _ text text";text;text;text;text;text;text;text;text;text  

원본 파일의 샘플과 예상 출력을 공유하십시오.
Sandeep

csv 파일을 Excel에로드하는 것이 목표라면 메모장으로 csv 파일을 편집하고 시작에 다음 행을 추가하십시오. sep=;이제 아무 문제없이 Excel에 파일을로드 할 수 있습니다.
LPChip

@ LPChip : 감사합니다. 엑셀 디스플레이에 효과적입니다. 그러나 DB 가져 오기를 정규화해야하며 테이블에 150k 개의 행이 있으며 RegEx F & R을 사용하는 솔루션을 선호합니다
Sven

먼저 Excel에서 정상적으로 가져온 다음 검색 / 교체 할 수 있습니다. 나는 이것이 답이 아니라 그 해결 방법이며, 한 번만 탈출하면 탈출 할 수 있습니다.
LPChip

답변:


1
  • Ctrl+H
  • 무엇을 찾다: "[^";]*\K;(?=[^";]*")
  • 다음으로 교체하십시오. _
  • 감싸기 체크
  • 정규식 확인
  • Replace all

설명:

"           : a double quote
[^";]*      : 0 or more any character that is not a double quote or a semicolumn
\K          : forget all we have seen until this position
;           : a semicolumn
(?=         : start lookahead, make sure we have, after current position,
  [^";]*    : 0 or more any character that is not a double quote or a semicolumn
  "         : a double quote
)           : ed lookahead

바꿔 놓음:

_       : an underscore

주어진 예에 대한 결과 :

Fieldtitles: f1;f2;f3;f4;f5;f6;f7;f8;f9;f10;f11  
Dataset1: ;;text;text;;text;text;text;text;text;text  
Dataset2: text;"text text text _ text text";text;text;text;text;text;text;text;text;text    

0

바꾸기 창에서 다음을 지정하십시오.

  • 무엇을 찾다: \"(.*?);(.*?)\"
  • 다음으로 교체하십시오. "\1_\2"
  • Regular Expression라디오 총알을 확인하십시오 .

이것은 하나의 세미 컬럼을 포함하는 주석으로 대체 ;됩니다 _. 정규식 분석 :

  • \" -큰 따옴표로 일치 시작
  • (.*?); -첫 번째 반열까지 모든 것을 일치시킵니다.
  • (.*?)\" -다음 큰 따옴표까지 모든 것을 일치시킵니다
  • "\1_\2"- 출력 교체하면서 유사한 따옴표과 유사한 표현식 # 1, # 2 ;_.

주석에 여러 개의 세미콜론을 사용할 수있는 경우 계속 쳐서 Replace All( Wrap around옵션을 선택한 상태로) 모든 세미콜론이 교체 될 때까지 한 번에 주석 당 하나의 세미콜론을 대체합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.