2009-05-07 19 views

Respuesta

20

¿Has probado esto?

[^~,] 

Ahora excluir caracteres no en el teclado, yo creo que hay que incluir a todos.

[a-zA-Z0-9\t\n ./<>?;:"'`[email protected]#$%^&*()\[\]{}_+=|\\-] 

Que prácticamente lo cubre (a pesar de que parece una forma alocada de hacer las cosas). Tal vez la definición del problema puede ayudarlo a agregar más elementos para excluir en la primera lista [^~,] que tratar de crear una lista enorme de todos los caracteres del teclado.

+0

Sin embargo, esto permitirá algunos caracteres especiales que no están en el teclado que podrían venir accidentalmente al copiar y pegar desde algún texto. –

4

Usted no ha dicho qué idioma/herramienta que está utilizando, pero en Java Me gustaría ir con esta expresión regular:

"[\\p{Print}&&[^~,]]" 

Esa es la intersección de dos conjuntos: todos los caracteres ASCII de impresión, y todos los personajes que no son una tilde o una coma

3

que tenía que hacer esto para expresiones regulares para trabajar:

"[^~,][^~,]*" 

porque [^~,] niega ~ y ,

[^~,]* significa en cero o muchas copias de ~ y , (que es inútil para nuestro caso)

y poniendo [^~,][^~,]* que llega a negar una o más copias de ~ o ,

+4

Hay un cuantificador especial para "uno o más": '[^ ~,] +' – Teejay

0

Reg-Ex para todos los caracteres de mesa fundamentales apoyadas trabajó para mí:

/^[[email protected]?#"$%&:';()*\+,\/;\-=[\\\]\^_{|}<>~` ]+$/ 

para exceptuar '~' y '' caracteres:

/^[[email protected]?#"$%&:';()*\+\/;\-=[\\\]\^_{|}<>` ]+$/ 
Cuestiones relacionadas