2010-01-06 54 views
0

Java的regex庫我期待與支持一個Java正則表達式的lib遞歸,如:遞歸支持

"<a+(?0)>" 

JDK不支持它,ORO既不。

有人知道嗎?

感謝, Ondra

編輯:見http://www.php.net/manual/en/regexp.reference.recursive.php

,我需要它爲這個表達式:

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

+3

不是一個嘲笑,但技術上,一旦正則表達式支持它,它不再是一個正則表達式,因爲它不再是正則表達式。由此它不再是DFA(確定性有限自動機),而是上下文無關語法(下推自動機)。這不是真的回答你的問題。 :) – cletus

+0

因此,你應該看看ANTLR。 –

+0

好奇,該表達的預期行爲是什麼? – PSpeed

回答

0

答案是:沒有。我可以修改JDK的java.util.regex

2

Stevesoft Pat圖書館具有一定的遞歸匹配能力(記錄here) ,但該功能可能不如您期望的那樣有用。如果遞歸匹配對你來說很重要,你應該使用真正的解析器而不是正則表達式。

+0

謝謝,但我正在尋找更強大的功能,就像PHP PCRE所擁有的一樣(在問題中增加了文檔)。 DIY選項似乎是唯一的選擇。 –