2010-01-06 1 views
0

Я ищу регулярных выражений Lib Java с поддержкой рекурсии, как:Java регулярное выражение библиотека с поддержкой рекурсии

"<a+(?0)>" 

JDK не поддерживает его, ORO делает ни.

Кто-нибудь знает о таких?

Спасибо, Ондры

Edit: Смотрите http://www.php.net/manual/en/regexp.reference.recursive.php

И мне это нужно для этого выражения:

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

+3

Не быть педантом, но технически после регулярного выражения это уже не регулярное выражение, потому что оно больше не является регулярным. Таким образом, это уже не DFA (детерминированный конечный автомат) и вместо этого является контекстно-свободной грамматикой (pushdown automaton). Не то, чтобы это действительно отвечало на ваш вопрос. :) – cletus

+0

Поэтому вы должны посмотреть ANTLR. –

+0

Любопытно, каково ожидаемое поведение этого выражения? – PSpeed

ответ

0

Ответ: Нет. Я мог бы изменить JDK java.util.regex.

2

Stevesoft Pat библиотека имеет некоторую возможность рекурсивного соответствия (документально here) , но эта функция, вероятно, не так полезна, как вы ожидаете. Если для вас важна рекурсивная синхронизация, вы, вероятно, должны использовать реальный синтаксический анализатор вместо регулярных выражений.

+0

Спасибо, но я ищу что-то более мощное, как PHP PCRE (добавлено в вопрос). Вариант DIY кажется единственным. –