2010-01-06 2 views
0

Je cherche Java regexp lib avec le soutien de récursivité, comme:Java bibliothèque regex avec le soutien de récursion

"<a+(?0)>" 

ne supporte pas JDK il, ne ORO ni.

Quelqu'un sait-il à ce sujet?

Merci, Ondra

Edit: Voir http://www.php.net/manual/en/regexp.reference.recursive.php

Et j'ai besoin pour cette expression:

(?:mUi)^/--++ *+(.*)(?: *(?<= |^)\\.((?:\\([^)\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}|<>|>|=|<){1,4}?))?$((?:\\n.*+)*)(?:\\n(?0)|\\n\\\\--.*$|\\z)

+3

Pour ne pas être un pédant mais techniquement une fois qu'une regex supporte ce n'est plus une regex car elle n'est plus régulière. De ce fait, ce n'est plus un DFA (automate fini déterministe) mais une grammaire sans contexte (automate à pile). Pas que cela réponde vraiment à votre question. :) – cletus

+0

Par conséquent, vous devriez regarder ANTLR. –

+0

Curieux, quel est le comportement attendu de cette expression? – PSpeed

Répondre

0

La réponse est: Il n'y en a pas. Je pourrais éventuellement modifier le java.util.regex du JDK.

2

La bibliothèque Stevesoft Pat a une capacité de mise en correspondance récursive (documentée here) , mais cette fonctionnalité n'est probablement pas aussi utile que prévu. Si la correspondance récursive est si importante pour vous, vous devriez probablement utiliser un vrai analyseur au lieu de regex.

+0

Merci, mais je cherche quelque chose de plus puissant, comme le PHP PCRE a (docs ajouté dans la question). L'option DIY semble être la seule. –