2010-04-16 21 views
6

Como acabo de enterarme por this question, .NET regexes can access individual matches within a repeated capturing group.¿Qué sabores de expresiones regulares admiten capturas (a diferencia de los grupos de captura)?

I. e., Si aplico una expresión regular como \b(\w+\s*)+ a una serie de palabras, sólo la última palabra se almacenarán en \1 o Match.Groups(1).Value, pero utilizando Match.Groups(1).Captures consigo el acceso a toda la persona coincide con la expresión regular repiten a lo largo.

¿Hay otros sabores regex que admitan esto además de .NET?

+1

realmente! No lo sabía. +1 – YOU

+0

puede ser esta es la llamada de Jan Goyvaerts – YOU

Respuesta

4

Hasta donde yo sé, solo .NET y Perl 6 ofrecen esa capacidad.

+0

Gracias por Perl 6. Parece que el motor JGSoft está listo para una pequeña revisión. Las capturas me parecen una característica útil. Todavía estoy en la mira, ya sea que las expresiones recursivas/equilibradas sean una buena cosa o que hagan que las expresiones regulares sean completamente inmanejables. –

+0

Tiendo a pensar que si necesita recursiones * o * capturas intermedias, no debería usar expresiones regulares en absoluto. Al menos, no Perge 5 era expresiones regulares; Perl 6 incluye cambios importantes en la sintaxis de expresiones regulares, lo que facilita el uso de funciones avanzadas como esas y aún así puede leer lo que ha escrito. –

+0

Acabo de ver los documentos Perl 6 regex. Wow, ese * es * un gran cambio de Perl 5 ... –

Cuestiones relacionadas