Je dois identifier (potentiellement imbriqué) des groupes de capture dans des expressions régulières et créer un arbre. La cible particulière est Java-1.6 et j'aimerai idéalement le code Java. Un exemple simple est:Code pour analyser des groupes de capture dans des expressions régulières dans un arbre
"(a (b | c) d (e (f * g)) h)"
qui serait analysé à
"a(b|c)d(e(f*g))h"
... "b|c"
... "e(f*g)"
... "f*g"
La solution doit prendre en compte idéalement pour les expressions de compte, les quantificateurs, etc. et les niveaux d'échappement. Cependant, si cela n'est pas facile à trouver, une approche plus simple pourrait suffire car nous pouvons limiter la syntaxe utilisée.
EDIT. Clarifier. Je veux analyser la chaîne d'expressions régulières elle-même. Pour ce faire, j'ai besoin de connaître le BNF ou équivalent pour les expressions rationnelles Java 1.6. J'espère que quelqu'un l'a déjà fait.
Un sous-produit d'un résultat serait que le processus teste la validité de l'expression régulière.
voir @anthony. J'ai clarifié la question –