validate test regular regexp online how expressions regex

regex - test - regular expressions



Referencia-¿Qué significa esta expresión regular? (1)

¿Que es esto?

Esta es una colección de Preguntas y Respuestas comunes. Esta es también una Wiki de la comunidad, por lo que todos están invitados a participar en su mantenimiento.

¿Por qué es esto?

regex está sufriendo de give me ze code tipo de preguntas y respuestas pobres sin explicación. Esta referencia está destinada a proporcionar enlaces a Q & A de calidad.

¿Cuál es el alcance?

Esta referencia está destinada a los siguientes idiomas: php , perl , javascript , python , ruby , java , .net .

Esto podría ser demasiado amplio, pero estos idiomas comparten la misma sintaxis. Para las características específicas, está la etiqueta del lenguaje detrás de ella, por ejemplo:

  • ¿Qué son los grupos de equilibrio de expresiones regulares? .net

Preguntas frecuentes sobre las expresiones regulares de desbordamiento de pila

Tutoriales en línea

Cuantificadores

  • Cero o más: *:greedy , *?:reluctant *?:reluctant , *+:possessive
  • Uno o más: *:greedy , *?:reluctant *?:reluctant , ++:possessive
  • ? : opcional (cero o uno)
  • Rangos mínimos / máximos (todo incluido): {n,m} : entre n & m , {n,}:n-or-more , {n} : exactamente n
  • Diferencias entre codicioso, renuente (también conocido como "perezoso", "desgreñado") y cuantificador posesivo:
    • Codiciosos contra reacios versus cuantificadores posesivos
    • Discusión en profundidad sobre las diferencias entre codiciosos y no codiciosos
    • ¿Cuál es la diferencia entre {n} y {n}?
    • ¿Alguien me puede explicar los Cuantificadores Positivos? php , perl , java , ruby
    • Emulando cuantificadores posesivos .net
    • Referencias de desbordamiento no apiladas: de Oracle , regular-expressions.info

Clases de personajes

  • ¿Cuál es la diferencia entre corchetes y paréntesis?
  • [...] : cualquier personaje, [^...] : negado / cualquier personaje pero
  • [^] coincide con cualquier carácter, incluidas las líneas nuevas javascript
  • [/w-[/d]] / [az-[qz]] : establecer la resta .net , xml-schema , xpath , JGSoft
  • [/w&&[^/d]] : establece la intersección java , ruby 1.9+
  • [[:alpha:]] : clases de caracteres POSIX
  • ¿Por qué [^//D2] , [^[^0-9]2] , [^2[^0-9]] obtienen resultados diferentes en Java? java
  • Taquigrafía:
    • Dígito: /d:digit , /D:non-digit
    • Carácter de Word (letra, dígito, guión bajo): /w : carácter de palabra , /D:non-digit
    • Espacio en /s:whitespace : /s:whitespace , /D:non-digit
  • Categorías Unicode ( /p{L}, /P{L} , etc.)

Secuencias de escape

  • Espacios en blanco horizontales: /h:space-or-tab , /t:tab
  • Newlines:
    • /r , /n : retorno de carro y avance de línea
    • /R : generic newline php
  • Secuencias de espacios en blanco negadas: /H : carácter de espacio en blanco no horizontal, /V : carácter de espacio en blanco no vertical, /N : carácter de alimentación en línea no pcre php5 java-8
  • Otro: /v : pestaña vertical , /e : el carácter de escape

Anclajes

  • ^ : inicio de línea / entrada , /b : límite de palabra, y /B : límite sin palabra , $ : final de línea / entrada
  • /A : inicio de la entrada, /Z : final de la entrada php , perl , ruby
  • /z : el final de la entrada ( /Z en Python) .net , php , pcre , java , ruby , icu , swift , objective-c
  • /G : comienzo del partido php , perl , ruby

(Consulte también "Información específica del sabor → Java → Las funciones en Matcher ")

Grupos

  • (...) : grupo de captura , (?:) : grupo sin captura
    • ¿Por qué mi grupo de captura repetitiva solo captura el último partido?
  • /1 : Referencia de referencia y grupo de captura, $1 : referencia de grupo de captura
    • ¿Cuál es el significado de un número después de una barra invertida en una expresión regular?
    • /g<1>123 : ¿Cómo seguir un grupo de captura numerado, como /1 , con un número ?: python
  • ¿Qué significa un subpatrón (?i:regex) ?
  • ¿Qué significa la ''P'' en (?P<group_name>regexp) ?
  • (?>) : grupo atómico o grupo independiente , (?|) : reinicio de rama
    • Equivalente a la reinicialización de la rama en .NET / C # .net
  • Grupos de captura nombrados:

Miradas

  • Lookaheads: (?=...):positive , (?!...):negative
  • Lookbehinds: (?<=...):positive , (?<=...):positive (no soportado por javascript )
  • Mire detrás de los límites en:
    • Lookbehinds necesita ser de longitud constante php , perl , python , ruby
    • Miradas de longitud limitada {0,n} java
    • Se permiten extensiones de longitud variable .net
  • Buscar alternativas alternativas:
    • Usando /K php , perl ( Sabores que soportan /K )
    • Módulo regex alternativo para python Python

Modificadores

  • La mayoría de los sabores: g:global , i:case-insensitive , u:unicode , x:whitespace-extended
  • c : posición actual perl e:expression php perl o:once ruby
  • m:multiline php perl python javascript .net java , m:(non)multiline ruby m:(non)multiline
  • s : línea única (no compatible con javascript o ruby ), s solución alternativa javascript
  • S:study php U:ungreedy php U:ungreedy
  • Cómo convertir preg_replace e a preg_replace_callback?
  • ¿Qué son los modificadores en línea?
  • ¿Qué es ''? -mix'' en una expresión regular de Ruby

Otro:

  • | : operador de alternancia (OR),. : cualquier caracter , [.] : personaje de punto literal
  • ¿Qué personajes especiales deben escapar?
  • Verbos de control ( php y perl ): (*PRUNE) , (*PRUNE) , (*PRUNE)
    • solo php : (*BSR_ANYCRLF)
  • Recursividad ( php y perl ): (?R) , (?0) y (?1) , (?-1) , (?&groupname)

Tareas comunes

  • Obtener una cuerda entre dos llaves: {...}
  • Haga coincidir (o reemplace) un patrón, excepto en las situaciones s1, s2, s3 ...
  • ¿Cómo puedo encontrar todos los ID de video de YouTube en una cadena usando una expresión regular?
  • Validación:
    • Internet: direcciones de correo electrónico , URLs (host / puerto: alternativas regex y non-regex ), passwords
    • Numérico: un número , rangos mínimo-máximo (como 1-31) , números de teléfono , date
    • Análisis de HTML con expresiones regulares: consulte "Información general> Cuándo no usar Regex"

Regex-Fu avanzado

  • Cuerdas y números:
    • Expresión regular para que coincida con una línea que no contiene una palabra?
    • ¿Cómo detecta este patrón PCRE los palíndromos?
    • Cadenas de coincidencia cuya longitud es una cuarta potencia
    • ¿Cómo esta expresión regex encuentra números triangulares?
    • ¿Cómo determinar si un número es primo con expresiones regulares?
    • ¿Cómo hacer coincidir el personaje del medio en una cadena con expresiones regulares?
  • Otro:
    • ¿Cómo podemos unir ^ nb ^ n con Java regex?
    • Match brackets anidados
      • (?-1) php , perl
      • Usando grupos de equilibrio .net
    • Coincidencia de expresiones regulares "verticales" en una "imagen" ASCII
    • Lista de preguntas de expresiones regulares altamente votadas en Code Golf
    • ¿Cómo hacer que dos cuantificadores repitan la misma cantidad de veces?
    • Una expresión regular imposible de combinar: (?!a)a
    • Haga coincidir / eliminar / reemplazar this excepto en los contextos A, B y C
    • Haga coincidir los paréntesis anidados con expresiones regulares sin usar recursividad o grupos de equilibrio?

Información específica del sabor

(Excepto por los marcados con * , esta sección contiene enlaces de desbordamiento de pila).

Información general

(Los enlaces marcados con * no tienen enlaces de desbordamiento de pila).

Ejemplos de expresiones regulares que pueden provocar que el motor de expresiones regulares falle

Herramientas: probadores y explicadores

(Esta sección contiene enlaces de desbordamiento de pila).