이 모든 텍스트를 '찾고 바꾸기' 위해 Notepad++에서 와일드카드를 어떻게 사용합니까?

이 모든 텍스트를 '찾고 바꾸기' 위해 Notepad++에서 와일드카드를 어떻게 사용합니까?

이에 대해 도움을 주시면 정말 감사하겠습니다. 저는 XML 스크립트로 마크업된 대규모 텍스트 모음을 작업하고 있으며 몇 가지 사항을 정리해야 합니다. 더 구체적으로 말하자면, 삭제해야 할 대괄호(예: '[1234]') 안에 수백 개의 숫자가 있습니다(괄호 포함). 각 숫자는 다르며 이 숫자에는 3~5자리 숫자가 포함될 수 있습니다.

두 번째로 해야 할 일은 다른 텍스트 부분 주위에 XML 태그를 배치하는 것입니다. 괄호 안의 이름은 다음과 같습니다. 즉, 다음과 같습니다.

그(스미스 씨)는 이렇게 말했습니다...

내가 변경하고 싶은 것 :

그는 <annot> (Mr. Smith) </annot>말했다...'.

이 두 가지 변경을 어떻게 수행할 수 있나요?

이미 확장 모드를 사용하여 '[.*]'를 검색해 보았으나 검색 결과가 없습니다. RegEx로 동일한 작업을 시도하면 많은 히트가 발생하지만 코퍼스의 모든 대괄호를 모두 검색하는 것 같습니다.

답변1

대괄호는 정규식의 특수 토큰( [a-z]범위에 있는 모든 문자를 의미 a) z이므로 이스케이프 처리해야 합니다.

귀하의 검색 표현은 \[\d+\]( \d+하나 이상의 숫자를 의미함)이 될 것입니다. 그러나 이것을 숫자로만 바꾸고 싶습니다. 괄호를 사용하여 캡처 그룹을 설정하고 교체 표현식에서 이를 참조해야 합니다. 귀하의 설정은 다음과 같습니다:

  • 검색:\[(\d+)\]
  • 다음으로 교체:\1

두 번째 문제는 귀하가 제공한 맥락으로 제대로 이해하고 있는지 잘 모르겠습니다. 괄호 안에 이름만 있는 경우 \([^\)]+\)로 바꾸 <annot> \0 </annot>거나 \(Mr\. [^\)]+\)이름 앞에 Mr..

자세한 내용을 알아보려면 작동 방식은 다음과 같습니다.

  • 검색하는 괄호는 일반적으로 캡처 그룹을 정의하는 데 사용되므로 이스케이프되어야 합니다 \(.\)
  • [^...]+그렇지 않은 하나 이상의 문자를 의미합니다....
  • 따라서 검색 표현식은 여는 괄호이고, 그 뒤에는 닫는 괄호가 아닌 문자(이름과 일치해야 함), 닫는 괄호가 옵니다.
  • \0대체영역에 검색된 표현 전체를 나타냅니다.

대체할 이름 목록이 있는 경우 \(whatever name\)검색 표현식으로 사용하는 것이 더 좋으며, 그렇지 않은 경우 정규 표현식으로 무엇이 이름이고 무엇이 아닌지 "추측"할 수 없으므로 불가능합니다. .

관련 정보