ASCII가 아닌 키보드 문자가 포함된 모든 줄을 어떻게 제거합니까?
정규식 코드를 여러 번 시도했지만 원하는 대로 작동하는 코드가 없습니다. 이 코드를 시도했지만 [^\x00-\x7F]+
모든 문자가 선택되지 않았습니다.
내 생각에는 이 방법을 사용하는 것이지만 [^a-z0-9``~!@#$%^&*()-_=+[]{}\|;:'"<>,./?]
이 문자 중 일부가 선택 해제되지 않았기 때문에 여전히 작동하지 않습니다.\
/
|
{
}
[
]
$
#
^
(
)
줄에 아래 목록에 없는 문자가 포함되어 있으면 해당 문자를 제거하거나 북마크에 추가하고 싶습니다.
0123456789`~!@#$%^&*()-_=+[]{}\/|;:'"<>,.? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
간단한 예: 여기에는 이와 같은 문자가 더 많이 있습니다.https://en.wikipedia.org/wiki/List_of_Unicode_characters
0123456789`~!@#$%^&*()-_=+[]{}\|;:'"<>,./? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ ¤©ª«¬¯°±²³´µ¶·¸¹º»¼½¾¿÷ÆIJŒœƔƕƋƕ ƜƝƢƸƾDžNJNjǽǾǼɁɀȾɎʒəɼʰʲʱʴʳʵʶʷʸˁˀˇˆ˟ˠ ˩˧Ͱͱͳʹͼͻͺ͵ͿΏΔΘΞΛΣΠΦΧΨΩΪΫάέήίΰαβδε θηκλμξπςρφχψωϊϋϏώϑϐϓϒϔϕϖϠϟϞϝϜϡϢ ϤϣϧϫϬϮϯϰϱ₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲ ₳₴₵₶₷₸₹₺₻₼₽₾₿⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜ ⅝⅞⅟℠℡™℣ℤ℥Ω℧ℨ℩KÅℬℭ℮ℯ⇀⇁ↀↁↂↃↄ ⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟⇠⇡⇢⇣⇤⇥⇦⇧⇨⅀⅁⅂⅃⅄ⅅ ⅆⅇⅈⅉ⅊⅋⅌⅍ⅎ⅏ⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽ
예상 결과:
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 해결 방법에 대한 질문에 답변해 드립니다. ;) )
불행히도 아포스트로피도 느슨해지는 해결책이 있을 것입니다.'
- 시작 메뉴에서 Windows용 bash 열기
- 파일이 있는 폴더로 이동합니다
cd /mnt/c/path/folder
(C: 드라이브는 /mnt/c에 있음). 파일 이름이 지정된 경우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 to
to remove the empty lines. Last but not least with
바.txt
감사합니다:
- https://stackoverflow.com/a/20007549/7311363:alnum: 팁
- https://unix.stackexchange.com/a/48568/223965아포스트로피 설명을 위해
답변3
Notepad++에서는 다음과 같이 쉽습니다.
메뉴찾다>표시...
찾을 내용:
[^\x00-\x7F]
✓ 표시선
(•) 정규식누르다모두 찾기
메뉴찾다>서표>북마크된 줄 제거