Comment obtenir la capture d'un groupe de fonctionnalités en Aller expressions régulières

Je suis le portage d'une bibliothèque de Ruby Aller, et viens de découvrir que les expressions régulières en Ruby ne sont pas compatibles avec Go (google RE2). Il est venu à mon attention que Ruby & Java (et d'autres langues utilisent les expressions régulières PCRE (perl compatible qui prend en charge de capturer les groupes)), j'ai donc besoin de ré-écrire mes expressions, de sorte que la compilation est ok en Aller.

Par exemple, j'ai la regex suivante:

`(?<Year>\d{4})-(?<Month>\d{2})-(?<Day>\d{2})`

Cela devrait accepter une entrée de type:

2001-01-20

La capture des groupes de permettre à l'année, le mois et le jour pour être capturé dans des variables. Pour obtenir la valeur de chaque groupe, il est très facile; il suffit d'index dans le retour des données appariées avec le nom du groupe et vous obtenez la valeur de retour. Ainsi, par exemple, pour obtenir l'année, quelque chose comme ce pseudo-code:

m=expression.Match("2001-01-20")
year = m["Year"]

C'est un modèle que j'utilise beaucoup dans mes expressions, et j'ai donc beaucoup de ré-écrire pour le faire.

Alors, est-il un moyen d'obtenir ce type de fonctionnalité dans le jeu de Go regexp; comment dois-je ré-écrire ces expressions?

InformationsquelleAutor Plastikfan | 2015-05-27