여러 검색을위한 정규식 및 메모장 ++ 교체


0

다음과 같은 패턴으로 도와주세요

현재 텍스트

ALPHA;111,'BI_209'
ALPHA;222,'BI_213'
ALPHA;AAA,'BI_209'
ALPHA;FFF,'BI_209'
ALPHA;123,'BI_220'

메모장에서 찾기 및 바꾸기의 첫 번째 라운드 후 의도 된 상태 ++

BI_209;111,'BI_209'
ALPHA;222,'BI_213'
BI_209;AAA,'BI_209'
BI_209;FFF,'BI_209'
ALPHA;123,'BI_220'

위에서 볼 수 있듯이 첫 번째 라운드에서 특정 패턴을 검색 * ALPHA* BI_209* 하고로 바꾸려고합니다 *BI_209*BI_209*.
FIND에서 올바른 정규식과 REPLACE 필드를 사용하여 내가 얻을 계획을 달성하도록 도와주세요. '; 111,'..... '; 222,'.... '; AAA'와 같은 다양한 텍스트가 변경되거나 영향을받지 않아야합니다.

찾기 및 바꾸기 패턴을 얻는 경우 여러 개의 찾기 및 바꾸기의 두 번째 (및 추가) 라운드에서 도움이 될 것입니다.이 결과를 얻으려면

BI_209;111,'BI_209'
BI_213;222,'BI_213'
BI_209;AAA,'BI_209'
BI_209;FFF,'BI_209'
BI_220;123,'BI_220'

답변:


1
  1. 무엇을 찾다: ALPHA(.*'BI_209')

    다음으로 교체하십시오. BI_209\1

    설명 : 괄호 사이의 정규 표현식과 일치하는 내용이 저장되고로 호출 할 수 있습니다 \1. 괄호는 예를 들어, 여러 캡처 그룹을 정의 할 수 있습니다 (ALPHA)(.*)('BI_209')역 참조로 재사용 할 수있는, \1, \2, \3...

  2. 이 모든 것을 종합하면 모든 대체를 한 번에 수행 할 수 있습니다.

    무엇을 찾다: ALPHA(.*)'(BI_209|BI_213|BI_220)'

    다음으로 교체하십시오. \2\1'\2'

    여기서 |기호는 검색 할 대체 문자열을 지정합니다.

  3. 나중에 다른 코드를 추가 할 경우에보다 일반적인 해결책은 다음과 같습니다.

    무엇을 찾다: ALPHA(.*)'(BI_\d{3})'

    다음으로 교체하십시오. \2\1'\2'

    다음 \d은 모든 숫자와 일치하며 [0-9]; 의 동의어입니다 . {3}반복 인자이다; \d{3}정확히 3 자리의 모든 시퀀스와 일치합니다.

참고 : paretheses는 특수 문자이므로 리터럴을 지정 (하거나 )백 슬래시로 이스케이프해야하는 경우 : \(및 \).


사용 가능한 옵션을 더 잘 설명하기 위해 단계별로 진행했습니다. Máté Juhász의 답변은 즉시 마지막 요점을 해결하며 더 일반적입니다.
— simlev

멋진 설명입니다. 한 번에 모든 작업을 수행하기 위해 제공 한 논리를 사용했습니다. 즉 (ALPHA) (. *) (BI _) (. *) ( ')를 검색하고 \ 3 \ 4 \ 2 \ 3 \ 4 \ 5로
— 대체

대단한 해결책을 제시하기 위해 제공된 정보를 사용할 수 있다는 점이 좋습니다.
— simlev

Simlev-몇 가지 질문
— user705628

Simlev-몇 가지 질문. 1)-괄호가 텍스트에 들어올 때 분할하는 방법 ..... 예-> ALPHA ( 'Hello'). (ALPHA ( ') (. *) ('))을 사용하려고했습니다. 이 계획은이 ALPHA ( '-> 1 Hello-> 2'-> 3. *) ( ') 의미 알파-> 1 (-> 2'-> 3
— Hello-

1

텍스트를 찾아서 ALPHA...'BI_xxx'바꾸려면 'BI_xxx'...'BI_xxx':

  • 찾기 및 바꾸기 대화 상자 열기
  • "정규 표현식"을 확인하십시오
  • 무엇을 찾다: ALPHA(.*'(BI_\d+)')
  • 교체 : 여기에서\2\1
    테스트

이것은 하나 이상의 숫자가있는 'BI_xxx' 위치 와 일치합니다 xxx.


1
공감할만한 가치가있는 저는 중첩 된 캡처 그룹을 사용할 생각이 없었습니다. 정확한 솔루션을 제공하기 위해 내부 세트를 내부 ()로 이동해야합니다 ''.
— simlev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.