
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