¿Existe una manera fácil de hacer coincidir todos los signos de puntuación, excepto el punto y el guión bajo, en una expresión regular de C#? Esperando hacerlo sin enumerar todos los signos de puntuación.Regex: coincide con cualquier signo de puntuación excepto y _
Respuesta
Uso Regex Resta
[\p{P}-[._]]
Aquí está la enlace para la documentación de .NET Regex (no estoy seguro si otras versiones lo soportan) ... http://msdn.microsoft.com/en-us/library/ms994330.aspx
Aquí está un ejemplo de C#
string pattern = @"[\p{P}\p{S}-[._]]"; // added \p{S} to get ^,~ and ` (among others)
string test = @"_""'a:;%^&*~`[email protected]#.,?";
MatchCollection mx = Regex.Matches(test, pattern);
foreach (Match m in mx)
{
Console.WriteLine("{0}: {1} {2}", m.Value, m.Index, m.Length);
}
Explicación El patrón es una resta clase de caracteres. Comienza con una clase de caracteres estándar como [\ p {P}] y luego agrega una clase de caracteres de resta como - [._] que dice que debe eliminarse. y _. La resta se coloca dentro de [] después de las tripas de clase estándar.
usted podría utilizar una clase de caracteres negada así:
[^0-9A-Za-z._\s]
Esto incluye todos los personajes excepto los enumerados. Es posible que deba excluir más caracteres (como los caracteres de control), según sus requisitos últimos.
Eso también recibiría espacios –
De acuerdo, agregue espacio a la lista de exclusión. –
Muy bien, pero quiero la mitad de su representante para esta pregunta ... –
Aquí hay algo un poco más simple. No palabras o espacios en blanco (donde las palabras incluyen A-Za-z0-9 Y guion bajo).
[^\w\s.]
¡También funciona en Ruby! – zanbri
Las respuestas hasta el momento no respetan TODA la puntuación. Esto debería funcionar:
(?![\._])\p{P}
(Explicación: búsqueda negativa hacia delante para asegurar que ni .
ni _
se emparejan, entonces cualquier carácter Unicode puntuacion.)
Eso no parece coincidir con ^, ~ o '; ¿podría probarlo incorrectamente, o .NET no los considera signos de puntuación? – Smashery
@Smashery Estos son acentos, nunca los usaría como signos de puntuación en el idioma inglés. – steinar
¡Muchas gracias! Decidí aceptar la respuesta de Les, porque encuentro Regex Substraction más fácil de entender conceptualmente; por lo tanto, es más probable que lo recuerde; pero +1 - ¡gracias por enseñarme algunas cosas nuevas!(Ojalá pudiera aceptar dos respuestas) – Smashery
- 1. .htaccess rewrite regex: coincide con cualquier cosa menos "índice"
- 2. C# Regex coincide con cualquier cosa dentro de paréntesis
- 3. Eliminar toda la puntuación excepto los apóstrofes en R
- 4. Expresión regular: coincide con cualquier carácter excepto +, cadena vacía también debe coincidir
- 5. PHP Regex Cualquier carácter
- 6. Hace. realmente coincide con cualquier personaje?
- 7. Regex: ¿coincide con todas las apariciones?
- 8. Regex - coincide con todo, pero barra inclinada
- 9. Java Regex no coincide?
- 10. regex coincide con la intersección en C#
- 11. Expresión regular: coincide con todas las palabras excepto
- 12. Java RegEx que coincide con cualquier cosa PERO cadena literal 'NIL' o 'nil'
- 13. regex para que coincida con un solo carácter que sea cualquier cosa excepto un espacio
- 14. Regex que coincida con cualquier cosa excepto en todos los espacios en blanco
- 15. RegEx en texto sublime: ¿Coincide con cualquier carácter, incluidas las líneas nuevas?
- 16. Regexp: Cualquier carácter excepto secuencia
- 17. Coincide con el identificador Unicode de C# con Regex
- 18. Looping a través de Python Regex coincide con
- 19. contraseña fuerte expresión regular que coincide con cualquier Char especial
- 20. Regex cualquier carácter ascii
- 21. Regex - Coincide con un patrón antes de un personaje
- 22. Regex - Haga coincidir cualquier secuencia de caracteres excepto una palabra en particular en una URL
- 23. Regex que coincide con el número con hasta 2 decimales
- 24. ¿Patrón Regex que no coincide con ciertas extensiones?
- 25. Python regex \ w no coincide con la combinación de diacríticos?
- 26. Regex coincide con una de las dos palabras
- 27. expresión regular de python que coincide con cualquier cosa
- 28. escapando signo de interrogación en regex javascript
- 29. Powershell Regex - grupo denominado opcional coincide
- 30. Notepad ++ inverso Regex reemplazar (todos excepto cadena)
Eso no parece coincidir ^, ~ o '; ¿podría probarlo incorrectamente, o .NET no los considera signos de puntuación? – Smashery
Si suelta - [._], entonces \ p {P} tampoco coincide. – Les
¿Entonces .NET no los considera como signos de puntuación? – Smashery