Regular Expressions Referencias y grupos no capturadores


Ejemplo

Dado que los grupos están "numerados", algunos motores también admiten la coincidencia con lo que un grupo ha vuelto a hacer coincidir previamente.

Suponiendo que quisiera hacer coincidir algo donde dos cuerdas iguales de la longitud tres se dividen por un $ que usaría:

(.{3})\$\1

Esto coincidiría con cualquiera de las siguientes cadenas:

"abc$abc"
"a b$a b"
"af $af "
"   $   "

Si desea que un grupo no esté numerado por el motor, puede declararlo como no capturado. Un grupo que no captura se ve así:

(?:)

Son particularmente útiles para repetir un cierto patrón cualquier cantidad de veces, ya que un grupo también puede usarse como un "átomo". Considerar:

(\d{4}(?:-\d{2}){2} \d{2}:\d{2}.\d{3}) (.*)[\r\n]+\1 \2

Esto coincidirá con dos entradas de registro en las líneas adyacentes que tienen la misma marca de tiempo y la misma entrada.