Notepad++ 또는 Emeditor를 사용하여 ASCII가 아닌 문자가 포함된 모든 줄을 제거하는 방법

Notepad++ 또는 Emeditor를 사용하여 ASCII가 아닌 문자가 포함된 모든 줄을 제거하는 방법

ASCII가 아닌 키보드 문자가 포함된 모든 줄을 어떻게 제거합니까?

정규식 코드를 여러 번 시도했지만 원하는 대로 작동하는 코드가 없습니다. 이 코드를 시도했지만 [^\x00-\x7F]+모든 문자가 선택되지 않았습니다.

내 생각에는 이 방법을 사용하는 것이지만 [^a-z0-9``~!@#$%^&*()-_=+[]{}\|;:'"<>,./?]이 문자 중 일부가 선택 해제되지 않았기 때문에 여전히 작동하지 않습니다.\ / | { } [ ] $ # ^ ( )

  1. 줄에 아래 목록에 없는 문자가 포함되어 있으면 해당 문자를 제거하거나 북마크에 추가하고 싶습니다.

    0123456789`~!@#$%^&*()-_=+[]{}\/|;:'"<>,.?
    abcdefghijklmnopqrstuvwxyz
    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    
  2. 간단한 예: 여기에는 이와 같은 문자가 더 많이 있습니다.https://en.wikipedia.org/wiki/List_of_Unicode_characters

    0123456789`~!@#$%^&*()-_=+[]{}\|;:'"<>,./?
    abcdefghijklmnopqrstuvwxyz
    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    ¤©ª«¬¯°±²³´µ¶·¸¹º»¼½¾¿÷ÆIJŒœƔƕƋƕ
    ƜƝƢƸƾDžNJNjǽǾǼɁɀȾɎʒəɼʰʲʱʴʳʵʶʷʸˁˀˇˆ˟ˠ
    ˩˧Ͱͱͳʹͼͻͺ͵ͿΏΔΘΞΛΣΠΦΧΨΩΪΫάέήίΰαβδε
    θηκλμξπςρφχψωϊϋϏώϑϐϓϒϔϕϖϠϟϞϝϜϡϢ
    ϤϣϧϫϬϮϯϰϱ₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲
    ₳₴₵₶₷₸₹₺₻₼₽₾₿⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜
    ⅝⅞⅟℠℡™℣ℤ℥Ω℧ℨ℩KÅℬℭ℮ℯ⇀⇁ↀↁↂↃↄ
    ⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟⇠⇡⇢⇣⇤⇥⇦⇧⇨⅀⅁⅂⅃⅄ⅅ
    ⅆⅇⅈⅉ⅊⅋⅌⅍ⅎ⅏ⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽ
    
  3. 예상 결과:

    0123456789`~!@#$%^&*()-_=+[]{}\|;:'"<>,./?
    abcdefghijklmnopqrstuvwxyz
    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    

답변1

[^\x00-\x7F]잘 작동하지만, 긴 문자 클래스를 사용하려면 [^a-z0-9``~!@#$%^&*()-_=+[]{}\|;:'"<>,./?]특별한 의미가 있는 문자를 이스케이프해야 합니다(즉, -[]\linebreak \r, \n.

귀하의 정규 표현식은 다음과 같습니다:

 [^a-z0-9``~!@#$%^&*()\-_=+\[\]{}\\|;:'"<>,./?\r\n]
 #                    ^    ^ ^   ^            ^^^^

  • Ctrl+H
  • 찾을 내용: [^a-z0-9``~!@#$%^&*()\-_=+\[\]{}\\|;:'"<>,./?\r\n]+$ 하지만 다시 말하지만, [^\x00-\x7F]잘 작동하고 더 읽기 쉽습니다.
  • 다음으로 교체:LEAVE EMPTY
  • 둘러보기 확인
  • 정규식 확인
  • Replace all

주어진 예에 대한 결과:

0123456789`~!@#$%^&*()-_=+[]{}\|;:'"<>,./?
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

답변2

솔루션에 대해 불가지론적이고 Notepad++로 고정되지 않은 경우 여기에 표시된 대로 Win 10용 bash를 설치할 수 있습니다.https://superuser.com/a/1252271/715210(죄송합니다. 저는 항상 Linux 해결 방법에 대한 질문에 답변해 드립니다. ;) )

불행히도 아포스트로피도 느슨해지는 해결책이 있을 것입니다.'

  1. 시작 메뉴에서 Windows용 bash 열기
  2. 파일이 있는 폴더로 이동합니다 cd /mnt/c/path/folder(C: 드라이브는 /mnt/c에 있음).
  3. 파일 이름이 지정된 경우foo.txt 파일을 생성할 수 있습니다바.txt이 명령을 사용하면:

    cat foo.txt | tr -cd '[:alnum:]\n\r~!@#$%^&*()-_=+{}\|;:<>,./?"`' | sed '/^$/d' > bar.txt

부품 설명:

cat foo.txt텍스트 파일을 출력하고 파이프를 사용하여 출력은 sed > bar.txt` 사이 목록에 없는 모든 문자를 제거하는 |명령으로 리디렉션됩니다. 출력을 파일로 리디렉션합니다.tr -cd'...'. Followed by a pipe toto remove the empty lines. Last but not least with바.txt

감사합니다:

답변3

Notepad++에서는 다음과 같이 쉽습니다.

  1. 메뉴찾다>표시...

  2. 찾을 내용: [^\x00-\x7F]
    ✓ 표시선
    (•) 정규식

  3. 누르다모두 찾기

  4. 메뉴찾다>서표>북마크된 줄 제거

관련 정보