정규식 및 메모장 ++에서 비 ASCII 문자를 모두 제거하려면 어떻게합니까?


147

많이 검색했지만 메모장 ++에서 비 ASCII 문자를 제거하는 방법은 어디에도 없습니다.

찾기 및 바꾸기에 쓸 명령을 알아야합니다 (그림이 좋을 것입니다).

  • 화이트리스트를 만들고 모든 ASCII 단어 / 줄을 북마크하여 ASCII가 아닌 줄을 표시하지 않으려면

  • 파일이 상당히 커서 모든 ASCII 행을 선택할 수없고 ASCII가 아닌 문자가 포함 된 행을 선택하려는 경우 ...

답변:


263

이 표현식은 비 ASCII 값을 검색합니다.

[^\x00-\x7F]+

'검색 모드 = 정규식'을 선택하고을 클릭하십시오 Find Next.

출처 : 정규식 ASCII 문자


4
"^"를 제거하면 ASCII 줄을 검색합니다
Mike M

7
잘 작동하지만 설정해야했습니다 Encoding->Encode in ANSI. 다른 것을 찾을 수 없습니다.
FoamyGuy

1
정규식 검색 옵션 (별표 버튼)을 사용하여 netbeans에서 완벽하게 작동
Teson

VS 코드에서 작동하므로 정규식 검색 옵션을 클릭하는 것을 잊지 마십시오!
yashhy

4
\ r 및 \ n-캐리지 리턴 및 줄 바꿈 문자를 유지하려면 다음 정규식을 사용할 수 있습니다. [\ x00- \ x09 \ x0B- \ x0C \ x0E- \ x1F] +
Steffen Winkler

53

메모장 ++에서 메뉴 검색범위 내의 문자 찾기비 ASCII 문자 (128-255)로 이동 하면 문서를 각 비 ASCII 문자로 단계별로 이동할 수 있습니다.

ASCII가 아닌 모든 문자에 대해 문서를 반복하려면 " Wrap around "를 선택하십시오.

스크린 샷 "범위에서 찾기"


3
이것은 잘 작동하지만 목록에 모든 결과를 표시하지 않고 "대체"옵션을 표시하지는 않습니다.
Alex

깔끔하다. 나는 항상 비 ASCII에 대한 정규 표현식을 잊어 버리고이 페이지로 돌아갈 때마다 구글에 그것을
Jean-Francois T.

27

ProGM의 답변 외에도 NUL 또는 ACK와 같은 상자에 문자가 표시되어 제거하려는 경우 ASCII 제어 문자 (0-31)이며 다음 식으로 찾아서 제거 할 수 있습니다.

[\x00-\x1F]+

비 ASCII 및 ASCII 제어 문자를 모두 제거하려면이 정규식과 일치하는 모든 문자를 제거해야합니다.

[^\x1F-\x7F]+

ProGM의 답변에서 나온 값 \x00\x1F이미 일치합니다.
Unihedron

2
유지하려는 값과 일치합니다. 나는 당신이 그들을 제거하고 싶을 경우에 이것을 제안하고있었습니다.
brunorey

마지막 예제는 단위 구분 문자를 제외하려면 20에서 시작해야합니다. 7F를 제외하고 제어 문자이기도합니다.
fgb

훌륭한! qdap R 패키지를 사용하여 성가신 비 ASCII 문자를 모두 제거했습니다.mgsub("[^\x1F-\x7F]+", "", text_vector, fixed = FALSE)
Pablo Adames

22

비 ASCII 문자를 모두 제거하려면 다음 교체를 사용하십시오. [^\x00-\x7F]+

비 ASCII 제거

문자를 강조 표시하려면 검색 창에서 표시 기능을 사용하는 것이 좋습니다 . ASCII가 아닌 문자를 강조 표시하고 그 중 하나를 포함하는 줄에 책갈피를 추가합니다.

대신 ASCII 문자에 책갈피를 강조 표시하고 표시하려면 정규식 [\x00-\x7F]을 사용하십시오 .

비 ASCII 강조

건배


1
당신은 [^ \ x00- \ x7F] + 검색 식을 CopyPaste에하고 싶은 경우
하이에나

2
\ r 및 \ n-캐리지 리턴 및 줄 바꿈 문자를 유지하려면 다음 정규식을 사용할 수 있습니다. [\ x00- \ x09 \ x0B- \ x0C \ x0E- \ x1F] +
Steffen Winkler

4

새 줄을 유지하려면

  1. 먼저 줄 바꿈 문자를 선택하십시오 ... #을 사용했습니다.
  2. 확장 옵션 바꾸기 옵션을 선택하십시오.
  3. 입력 \ n #으로 대체
  4. 모두 교체 적중

다음:

  1. 바꾸기 옵션 정규식을 선택하십시오.
  2. 이것을 입력하십시오 : [^ \ x20- \ x7E] +
  3. 빈 상태로 교체 유지
  4. 모두 교체 적중

이제 바꾸기 옵션 확장을 선택하고 #을 \ n으로 바꿉니다.

:) 이제 깨끗한 ASCII 파일이 있습니다.)


3

또 다른 좋은 방법은 편집기에서 UTF8 모드로 들어가서 실제로 재미있는 문자를보고 직접 삭제할 수 있도록하는 것입니다.


1

또 다른 방법...

  1. Text FX 플러그인이 없다면 설치하십시오
  2. TextFX 메뉴 옵션-> 인쇄 할 수없는 모든 문자를 #으로 zap로 이동하십시오. 유효하지 않은 모든 문자를 3 # 기호로 바꿉니다.
  3. 찾기 / 바꾸기로 이동하여 ###을 찾으십시오. 공백으로 교체하십시오.

정규식을 기억할 수 없거나 찾아 보지 않으려는 경우에 좋습니다. 그러나 다른 사람들이 언급 한 정규식도 좋은 해결책입니다.


모든 문자를 잘라 내면 모든 유형의 문장 부호가 ###으로 바뀝니다. 내가 기대할 수있는 해결책은 "&"를 "로
바꾸는 것

잘 작동하지만이 도구는 재미있는 문자를 3 문자가 아닌 1 문자로 바꿉니다. 받아 적기를 바랍니다.
Raghav

1
Text FX 플러그인은 더 이상 사용되지 않으며 더 이상 쉽게 사용할 수 없습니다. 예를 들어 TextFX의 미래 - "목록이 충분히 길어지면, 지역 사회에 잘 봉사 한 노후 한 직원에게 작별 인사를하는 것이 실용적이 될 것입니다."
피터 Mortensen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.