Notepad++에서 검색 결과의 n번째 단어를 바꾸는 방법은 무엇입니까?

Notepad++에서 검색 결과의 n번째 단어를 바꾸는 방법은 무엇입니까?

Notepad++에 아래와 같은 텍스트 줄이 있습니다.

dog cat duck fan dog donkey

아래와 같이 'dog'라는 단어의 두 번째 항목을 'peacock'으로 바꾸고 싶습니다.

dog cat duck fan peacock donkey

답변1

소위 말하는 것으로 이 문제를 해결할 수 있습니다.정규 표현식, 아래를 참조하세요. 여러분이 익숙할지 모르겠지만 정규식은 (dog.*)(dog)'dog'이라는 단어가 두 번 나타나는 모든 줄을 일치시키고, $1peacock찾기 결과를 일치의 첫 번째 부분( dog.*) 다음에 로 바꿉니다 peacock. 대화 상자 하단의 검색 모드를 '정규식'으로 설정했는지 확인하세요.

여기에 이미지 설명을 입력하세요

그러면 다음과 같은 결과가 생성됩니다.

여기에 이미지 설명을 입력하세요

답변2

대체할 단어가 n번째 단어인가요, 아니면 두 번째 단어인가요?

전자의 경우 다음과 같은 정규식을 사용하십시오.

교체 창에 CTRL+를 입력합니다 .h

찾을 내용: ^(([^ ]+ ){4})([^ ]+ )(.*)
바꿀 내용: $1peacock$3
모든 상자를 선택 취소하고 라디오 버튼을 선택합니다. 정규식

RegEx를 설명하려면 다음을 수행하십시오.

  • ^줄 시작, $줄 끝 의 앵커
  • ()캡처 그룹 구축
  • ([^ ]+ )클래스 []를 의미하고 ^내부는 부정된 클래스를 의미합니다. 따라서 이는 공간이 아니라 +최소한 하나가 아니라 가능한 한 많이 모인다는 의미입니다. 그 뒤에 공백이 있습니다. 전체적으로 이것은 첫 번째 단어와 일치합니다.
  • 다음은 {4}4개의 단어를 가져오고 이것이 또 다른 괄호 세트로 묶여 있으므로 이 캡처 그룹은 처음 4개의 단어를 가져옵니다.
  • 다음 단어와 공백은 교체할 단어와 ([^ ]+ )나머지 줄이 뒤따르는 것 입니다.(.*)$
  • 바꾸기는 첫 번째(중첩) 그룹을 $1대체 항목 peacock및 나머지 줄과 함께 다시 삽입합니다.$3 과 5번째 단어를 던지는$2

관련 정보