validar simbolos regulares regular online expresiones expresion ejemplos automatas regex

regex - simbolos - ¿Cuáles son algunas de las expresiones regulares más útiles para los programadores?



expresiones regulares simbolos (10)

¿Cómo pueden ayudarme en mis tareas diarias?

Un uso diario para programadores podría incluir

  • Búsqueda / reemplazo de datos de muestra para propósitos de prueba
  • búsqueda en los archivos de registro de patrones de cadena (excepciones, por ejemplo)
  • buscando en la estructura de un directorio archivos de un determinado tipo (tan simple como dir *.txt hace esto)

por nombrar unos cuantos

Soy nuevo en expresiones regulares y acabo de empezar a aprender algo. Me preguntaba cuáles son algunas de las expresiones regulares más utilizadas por los programadores. Dicho de otra manera, me gustaría saber para qué sirven las expresiones regulares. ¿Cómo pueden ayudarme en mis tareas diarias? Preferiría conocer expresiones regulares útiles para la programación diaria , no usar expresiones regulares como la correspondencia de direcciones de correo electrónico.

¿Nadie? Gracias.

Edición : la mayoría de las respuestas incluyen expresiones regulares que coinciden con las direcciones de correo electrónico, URL, fechas, números de teléfono, etc. Tenga en cuenta que no todos los programadores tienen que preocuparse por estas cosas en sus tareas diarias. Me gustaría saber algunos usos más genéricos de las expresiones regulares , si los hay, que los programadores en general (pueden) usar independientemente del idioma en el que estén trabajando los dominios.


  1. Email
  2. URL del sitio web
  3. Números de teléfono
  4. Código postal
  5. Alfanumérico (el nombre de usuario consiste en un número alfa y solo comienza con un carácter alfa
  6. Dirección IP

Bueno ... Creo que tu pregunta es incorrecta. Suena como si estuvieras preguntando sobre expresiones regulares que podrían / ​​deberían ser parte de la codificación de uno, o casi, como cosas como operadores matemáticos. Realmente, si su código depende de forma generalizada de las expresiones regulares, probablemente esté haciendo algo muy mal. Para un uso generalizado en todo el código, desea usar estructuras de datos que estén mejor definidas y sean más eficientes para trabajar que las cadenas administradas por expresiones regulares.

Lo más cercano a lo que estás pidiendo que tendría mucho sentido para mí sería algo como //s+/ utilizado para dividir cadenas en cantidades arbitrarias de espacios en blanco.


Ejemplos de expresiones regulares para

Entrada de decimales

  1. Enteros positivos ^/d+$

  2. Enteros negativos ^-/d+$

  3. Entero ^-?/d+$

  4. Número positivo ^/d*/.?/d+$

  5. Número negativo ^-/d*/.?/d+$

  6. Número positivo o número negativo ^-?/d*/.?/d+$

  7. Número de teléfono ^/+?[/d/s]{3,}$

  8. Teléfono con el código ^/+?[/d/s]+/(?[/d/s]{10,}$

  9. Año 1900-2099 ^(19|20)/d{2}$

  10. Fecha (dd mm aaaa, d / m / aaaa, etc.)

    ^([1-9]|0[1-9]|[12][0-9]|3[01])/D([1-9]|0[1-9]|1[012])/D(19[0-9][0-9]|20[0-9][0-9])$

IP v4:

^(/d|[1-9]/d|1/d/d|2[0-4]/d|25[0-5])/.(/d|[1-9]/d|1/d/d|2[0-4]/d|25[0-5]){3}$

Entrada alfabética

  • Nombre personal ^[/w.'']{2,}(/s[/w.'']{2,})+$
  • Nombre de usuario ^[/w/d_.]{4,}$
  • Contraseña al menos 6 símbolos ^.{6,}$
  • Contraseña o entrada vacía ^.{6,}$|^$
  • correo electrónico ^[_]*([a-z0-9]+(/.|_*)?)+@([az][a-z0-9-]+(/.|-*/.))+[az]{2,6}$
  • dominio ^([az][a-z0-9-]+(/.|-*/.))+[az]{2,6}$

Otras expresiones regulares : Coincidir sin entrada ^$ - Coincidir con entrada en blanco ^/s/t*$ - Coincidir con nueva línea [/r/n]|$ - Coincidir con espacio en blanco ^/s+$ - Coincidir con URL = ^http/:////[a-zA-Z0-9.-]+/.[a-zA-Z]{2,3}$


Esto dependerá completamente del dominio en el que trabaje. Para algunos, serán números de teléfono y SSN y otros para direcciones de correo electrónico, direcciones IP y URL. Lo más importante es saber cuándo necesita una expresión regular y cuándo no. Por ejemplo, si está intentando analizar datos de un archivo XML o HTML, generalmente es mejor usar una biblioteca diseñada específicamente para analizar ese contenido que intentar escribir algo por sí mismo.


Esto es un poco como preguntar ''¿cuáles son las palabras más útiles para los programadores?''

Depende para qué los vas a usar y depende de qué idioma. Y no lo dijiste .

Algunos programadores nunca deben preocuparse por hacer coincidir las direcciones de correo electrónico, números de teléfono, códigos postales y direcciones IP.

Mi copia de

Mastering Regular Expressions, O''Reilly, 3ª edición, 2006

dedica una gran cantidad de espacio a los sabores de expresiones regulares utilizadas por diferentes idiomas.

Es una gran referencia, pero encontré la segunda edición más legible.


Hasta cierre de etiqueta

([^<]*)

Seriamente. Uso combinaciones de esa manera con demasiada frecuencia para mayor comodidad ... Todos deberíamos deshacernos de expresiones regulares: es para peg-parsers, especialmente porque hay un buen estilo de gramática similar a expresiones regulares para ellos.


Piense en los campos de entrada que requieren validación, como códigos postales, números de teléfono, etc. Las expresiones regulares son muy utilizadas para validarlas. Además, eche un vistazo a este site , que contiene muchos tutoriales y muchos más ejemplos, algunos de los cuales les presento a continuación:

Rangos Numéricos. Dado que las expresiones regulares funcionan con texto en lugar de números, la coincidencia de rangos numéricos específicos requiere un poco de cuidado adicional.

Coincidencia con un número de punto flotante. También ilustra el error común de hacer que todo en una expresión regular sea opcional.

Coincidencia con una dirección de correo electrónico. Existe mucha controversia sobre qué es una expresión regular adecuada para hacer coincidir las direcciones de correo electrónico. Es un ejemplo perfecto que muestra que necesita saber exactamente qué está tratando de hacer coincidir (y qué no), y que siempre hay un equilibrio entre la complejidad y la precisión de expresiones regulares.

Coincidencia de fechas válidas. Una expresión regular que coincide con 31-12-1999 pero no 31-13-1999.

Encontrar o verificar números de tarjetas de crédito. Valide los números de tarjeta de crédito introducidos en su formulario de pedido. Encuentre números de tarjetas de crédito en documentos para una auditoría de seguridad.

Y muchas, muchas, muchas más aplicaciones posibles.


Tomaría un ángulo diferente en esto y diría que es más útil saber cuándo usar expresiones regulares y cuándo NO usarlas.

Por ejemplo, imagine este problema: "Averigüe si una cadena termina con un carácter de espacio en blanco". Se podría usar una expresión regular aquí, pero si estás usando C #, este código es mucho más rápido:

bool EndsWithWhitespace(string s) { return !string.IsNullOrEmpty(s) && char.IsWhiteSpace(s[s.Length - 1]); }

Las expresiones regulares son poderosas, y es importante saber cuándo son demasiado poderosas para el problema que estás tratando de resolver.


  • Dirección de correo electrónico
  • Sitio web
  • File-Paths
  • Números de teléfono / Fax / ZIP y otros números utilizados en negocios (números de química, ect.)
  • contenido del archivo (verifique si el archivo puede ser un archivo XML válido, ...)
  • Modificación de código y formateo (con reemplazo)
  • tipos de datos (GUID, análisis de enteros, ...)
  • ...