¿Cómo elimino todos los caracteres no ASCII con regex y Notepad ++?


147

Busqué mucho, pero en ninguna parte está escrito cómo eliminar caracteres no ASCII de Notepad ++.

Necesito saber qué comando escribir en buscar y reemplazar (con la imagen sería genial).

  • Si quiero hacer una lista blanca y marcar todas las palabras / líneas ASCII para que las líneas no ASCII no estén marcadas

  • Si el archivo es bastante grande y no puede seleccionar todas las líneas ASCII y solo desea seleccionar las líneas que contienen caracteres no ASCII ...

Respuestas:


263

Esta expresión buscará valores no ASCII:

[^\x00-\x7F]+

Marque 'Modo de búsqueda = Expresión regular' y haga clic Find Next.

Fuente: Regex cualquier carácter ASCII


44
y en caso de que no sea obvio, si elimina el "^" está buscando las líneas ASCII
— Mike M

77
Funciona bien, pero tuve que configurar Encoding->Encode in ANSI. No pude encontrar nada de otra manera.
— FoamyGuy

1
Funciona perfectamente en netbeans con su opción regexp-search (botón asterix)
— Teson

funciona en VS-Code, ¡no olvides hacer clic en la opción de búsqueda Regex!
— yashhy

44
Si desea mantener \ r y \ n - caracteres de retorno de carro y salto de línea - puede usar esta expresión regular: [\ x00- \ x09 \ x0B- \ x0C \ x0E- \ x1F] +
— Steffen Winkler

53

En Notepad ++, si va al menú Buscar → Buscar caracteres en el rango → Caracteres no ASCII (128-255) , puede pasar por el documento a cada carácter no ASCII.

Asegúrese de marcar " Ajustar " si desea hacer un bucle en el documento para todos los caracteres no ASCII.

captura de pantalla "Buscar en el rango"


3
Esto funciona bien, pero no muestra todos los resultados en una lista y no hay opción de "reemplazar"
— Alex

Genial ... porque siempre olvido la expresión regular para los no ASCII y tengo que buscarla en Google cada vez para volver a esta página :)
— Jean-Francois T.

27

Además de la respuesta de ProGM, en caso de que vea caracteres en cuadros como NUL o ACK y quiera deshacerse de ellos, esos son caracteres de control ASCII (0 a 31), puede encontrarlos con la siguiente expresión y eliminarlos:

[\x00-\x1F]+

Para eliminar todos los caracteres de control que no sean ASCII Y ASCII, debe eliminar todos los caracteres que coincidan con esta expresión regular:

[^\x1F-\x7F]+

Los valores de \x00y \x1Fya coinciden en la respuesta de ProGM.
— Unihedron

2
Se corresponden con los valores que desea mantener. Solo estaba sugiriendo esto en caso de que quieras deshacerte de ellos.
— brunorey

El último ejemplo debería comenzar en 20 para excluir el carácter separador de unidad. Tal vez excluya 7F, así como también es un personaje de control.
— fgb

¡Brillante! Eliminé todos los molestos caracteres no ASCII usando el paquete qdap R usando:mgsub("[^\x1F-\x7F]+", "", text_vector, fixed = FALSE)
— Pablo Adames

22

Para eliminar todos los caracteres no ASCII, puede usar el siguiente reemplazo: [^\x00-\x7F]+

Eliminar no ASCII

Para resaltar caracteres, recomiendo usar la función Marcar en la ventana de búsqueda: esto resalta los caracteres que no son ASCII y pone un marcador en las líneas que contienen uno de ellos

Si desea resaltar y poner un marcador en los caracteres ASCII, puede usar la expresión regular [\x00-\x7F]para hacerlo.

Destacando no ASCII

Salud


1
si desea copiar y pegar la expresión de búsqueda [^ \ x00- \ x7F] +
— hiena

2
Si desea mantener \ r y \ n - caracteres de retorno de carro y salto de línea - puede usar esta expresión regular: [\ x00- \ x09 \ x0B- \ x0C \ x0E- \ x1F] +
— Steffen Winkler

4

Para mantener nuevas líneas:

  1. Primero seleccione un personaje para la nueva línea ... Usé #.
  2. Seleccione la opción de reemplazo, extendida.
  3. entrada \ n reemplazar con #
  4. Hit Reemplazar todo

Próximo:

  1. Seleccione la opción Reemplazar Expresión regular.
  2. Ingrese esto: [^ \ x20- \ x7E] +
  3. Mantener reemplazar con vacío
  4. Hit Reemplazar todo

Ahora, seleccione la opción Reemplazar Extendida y Reemplace # con \ n

:) ahora, tienes un archivo ASCII limpio;)


3

Otro buen truco es ir al modo UTF8 en su editor para que pueda ver estos divertidos personajes y eliminarlos usted mismo.


1

De otra manera...

  1. Instale el complemento Text FX si aún no lo tiene
  2. Vaya a la opción de menú TextFX -> elimine todos los caracteres no imprimibles a #. Reemplazará todos los caracteres no válidos con símbolos 3 #
  3. Vaya a Buscar / reemplazar y busque ###. Reemplácelo con un espacio.

Esto es bueno si no puedes recordar la expresión regular o no te importa buscarla. Pero la expresión regular mencionada por otros también es una buena solución.


Zapping todos los caracteres reemplaza todo tipo de signos de puntuación con ###. La solución que esperaría es: Reemplazar “&” con ". Reemplazar '&' con '. Etc.
— Kasim Husaini

Funciona bien, sin embargo, la herramienta reemplaza los caracteres divertidos con un # carácter y no tres. por favor tome nota.
— Raghav

1
El complemento Text FX está en desuso y es posible que ya no esté disponible. Vea, por ejemplo, el futuro de TextFX : "Cuando la lista crezca lo suficiente, será práctico despedirse de un caballo de batalla que ha servido bien a la comunidad".
— Peter Mortensen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.