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


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.