2010-08-24 20 views
5

Buscando magia negra que combine con cualquier cadena con caracteres "extraños". Los caracteres ASCII estándar están bien. Todo lo demás no es.Net Regex que combina cadenas con cualquier carácter que no sea ASCII

Esto es para desinfectar varios formularios web.

+1

¿En serio? U + 0001 INICIO DE LA RÚBRICA o U + 0007 BELL está bien, pero el inglés claro no? ¿Estás seguro de que ASCII es lo que quieres unir? –

+0

Vamos, ¿por qué odias a \ a. Es genial. Pero sí, en serio. La última vez que revisé ninguno de esos interfiere con la representación de la página como el espejo o algunos de los otros. –

+1

é no se mete con una página tampoco. Si el problema es jugar con la representación de páginas, entonces quizás use '\ p {C}'. 'new Regex (@" \ p {C} "). Replace (sospechoso, string.Empty)' eliminará los controles y formateadores ASCII y no ASCII, sin dañar el texto normal de una forma más ingenua (o como lo haría it, nave) enfoque se destrozaría. Particularmente si tiene nombres o personas o lugares que aparecen en cualquier lugar (los nombres propios son ambos lugares donde las letras que no son ASCII aparecen mucho en inglés, y los lugares donde los usuarios se molestan especialmente si los manipula). –

Respuesta

6

Esto consigue nada fuera del rango ASCII

[^\x00-\x7F] 

Todavía hay algunos caracteres "raro" como x00 (NULL), pero son ASCII válidos.
Para referencia, ver el ASCII table

+1

Esa página de "tabla ASCII" es basura (perdón por mi francés). Presenta ese segundo cuadro como "el más popular" de los "conjuntos ASCII extendidos": ¿vuelve? ¡Es Cp850! Nadie lo usa a propósito; simplemente resulta ser la codificación predeterminada de la línea de comandos de Windows. Además, las tablas son imágenes, y se ven como el infierno (perdón por mi italiano) en una pantalla LCD. Envíelos a Wikipedia en su lugar: http://en.wikipedia.org/wiki/ASCII –

2

[^\p{IsBasicLatin}] para lo que se pide, [^\x00-\x7F] para concisión sobre auto-documentación, o \p{C} para la limpieza de formateadores y controles sin perjudicar a otros no-ASCIIs (y con mayor concisión todavía).

Cuestiones relacionadas