Textpad 또는 Notepad ++에서 모든 정규식 일치 항목을 목록으로 내보내기


29

Textpad 또는 Notepad ++에는 정규식 찾기에 대한 모든 일치 항목을 단일 목록으로 내보내는 옵션이 있습니까?

큰 텍스트 파일에서 정규 표현식을 사용하여 태그 (% %로 묶인 단어)를 검색 %\< and \>%하고 모든 일치 항목을 단일 목록으로 사용하여 Excel을 사용하여 중복 항목을 제거하고 고유 태그 목록을 얻을 수 있습니다.


메모장 ++에 RegexExtract 플러그인을 사용하면 중복을 제거 할 수 있으며 Excel로 사후 처리 할 필요가 없습니다.
R. Schreurs

답변:


54

메모장 ++에서 역 참조 및 찾기 및 표시 기능 을 사용하여이를 달성 할 수 있습니다 .

  1. 정규 표현식 (예 :)을 사용하여 일치하는 항목을 찾은 다음로 바꿉니다. 이 후에 대상 단어를 별도의 줄에 %(.*?)%넣습니다 \n%\1%\n(즉, 일치하는 단어가 두 줄 이상인 줄은 없습니다)

  2. 검색-> 찾기-> 표시 기능을 사용하여 각 줄을 정규식으로 표시하고 텍스트를 표시하기 전에 %(.*?)%' 책갈피 줄 '을 선택해야합니다.

  3. 검색-> 책갈피-> 표시되지 않은 줄 제거를 선택하십시오.
  4. 나머지 텍스트를 저장하십시오. 필수 목록입니다.

% % 대신 <> 태그가있는 파일이 하나 더 있는데 <(. *?)> 및 \ n <\ 1> \ n으로 시도했지만 작동하지 않습니다. 도움이 필요합니다.
Kiranshell

당신은 환영합니다 :) 나에게도 <>을 위해 일하고 있습니다. 중첩 <> 있습니까? 정확히 '작동하지 않는'것을 자세히 설명해 주시겠습니까?
Ankit

이전과 같은 태그 목록을 만들려고하지만 이것에는 <>이 있고 \ n 대신 % (. *?) % 및 \ n <\ 1> \ n 대신 <(. *?)>를 사용하고 있습니다. % \ 1 % \ n, 이것은 샘플 파일 wikisend.com/download/158050/tags.txt에
Kiranshell

제공된 텍스트로 다시 시도하고 정상적으로 작동하는 <(. *?)>를 사용했습니다. 태그 <Supplies> <hostname> ..... 등의 목록을 얻었습니다
Ankit

발생한 정확한 오류 / 문제를 언급하십시오. 바보처럼 들릴지 모르지만 커서를 맨 위로 이동시키는 것을 잊지 마십시오. 나는 종종 실수를하고 검색 결과가 반환되지 않습니다 ... :)
Ankit

5

메모장 ++ 에서 이것을 수행하는 것이 필수 요구 사항입니까? 당신은 Windows 또는 어떤 형태의 유닉스에 있습니까? Windows를 사용하는 경우 명령 프롬프트에서 부분적으로 수행 할 수 있습니다.

findstr / r "% [az]. * [az] % % [az] %" your_file > new_file

findstr막연에서 영감을 grep, 그래서이 new_file이 모두 포함됩니다 라인 검색 기준과 일치를; 그런 다음 Notepad ++를 사용하여 원하지 않는 텍스트 (첫 번째 %의 왼쪽 및 두 번째 텍스트의 오른쪽)를 제거 할 수 있습니다.


물론 Unix를 사용하는 경우에는 이와 동일한 작업을 수행 할 수 있습니다 sed.


멀리서 가장 좋은 대답!
Charles-Antoine Fournel 7

2

일치하는 정규식을 새 탭의 새 파일로 복사 할 수있는 Notepad ++ 플러그인이 있습니다. 정규식 추출

메모장 ++ 용 플러그인을 찾지 못해 현재 문서에서 일부 텍스트를 추출하거나 위치 변환과 같은 추가 설정이있는 위치에서 모든 파일을 추출 할 수 없기 때문에 직접 만들려고했습니다. (...) 플러그인 인터페이스는 매우 간단합니다 (...). (...) "찾기", "바꾸기"및 "마스크"필드는 C ++ 11 정규식 구문을 사용합니다. 파일에서 추출은 현재 UTF8의 파일에 대해서만 작동합니다.

질문에 맞는 대화 상자 입력 편집

여기에 이미지 설명을 입력하십시오

이미지에서 대화 상자를 채우는 방법을 볼 수 있습니다. 단어에 공백 등이 포함되어 있지 않으며 \ w와 일치하는 문자 만 포함한다고 가정합니다. 특히 :

  • percetange 문자없이 단어를 선택할 수 있도록 대괄호를 사용하십시오.
  • 대체로 추출 옵션 을 선택하여 첫 번째 일치 항목을 선택하십시오. 그렇지 않으면 모든 $ 1, $ 2 등의 열 출력이 표시됩니다.
  • $ & ... 건너 뛰기를 선택 하여 전체 일치 항목을 생략 하십시오 .
  • 필터를 한 번만보고하려면 고유 필터를 선택 하십시오 .
  • 추출 을 클릭 하여 결과 가져 오기를 선택하십시오. ( 검색 은 일치 항목 만 찾지 만보고하지는 않습니다).

좋은 플러그인, 정확히 무엇을 요청했는지 않습니다.
R. Schreurs

64 비트 메모장 ++에서 작동하지 않는 것 같습니다
Ivan Chau

0

TextPad에서 Find평소와 같이 상자를 가져온 다음 Mark All버튼 을 사용 합니다.

거기에서 Copy Bookmarked Lines기능을 사용하십시오 . (편집 메뉴> 기타 복사> 책갈피 된 줄)


개인적으로, 나는 정확한 작업을 자주 수행하여 책갈피 줄 복사 기능에 대한 키보드 단축키를 구성했습니다 : Ctrl + Alt + c.
daveloyall

메모장 ++ 질문을 검색했기 때문에이 질문에 왔습니다. 충성스럽고 비용이 많이 들지 않는 텍스트 패드 사용자로서 수년 후, 저는 메모장 ++ (GPL)로 전환하고 있습니다.
daveloyall
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.