我需要在Java中快速構建一個非常簡化的html-like標記語言版本的解析器。在python中,我會使用pyparsing庫來做到這一點。 Java有沒有類似的東西?請不要暗示圖書館已經在那裏進行HTML解析,我的應用程序是一個學校作業,它將演示如何使用訪問者模式來漫步對象樹和序列化文本,所以我在這裏沒有用現實世界的術語來思考。基本上我需要的是標籤,屬性和文本節點。是否有類似於Java中的pyparsing的庫?
7
A
回答
7
另一個好解析器發生器是ANTLR ,那可能就是你要找的東西。
1
在java中有很多字符串處理的選擇。 也許非常基本的java.util.Scanner
和java.util.StringTokenizer
課程對你有幫助嗎?
另一個不錯的選擇也許是the org.apache.commons.lang.text
庫。 http://commons.apache.org/lang/apidocs/org/apache/commons/lang/text/package-summary.html
3
可能會過度使用,但javacc是一款出色的工業級解析器生成器。我多次使用過這個程序/庫,它的可靠性和值得學習,特別是如果你要使用語言和編譯器。下面是程序的從網站上面列出的描述:
的Java編譯器編譯[TM](JavaCC的[TM])可以使用Java(TM)應用最流行的解析器生成。解析器生成器是一種讀取語法規範並將其轉換爲可識別語法匹配的Java程序的工具。除了解析器發電機本身,JavaCC的提供與解析器的生成其它的標準功能,如樹建築(通過附帶的JavaCC一個名爲JJTree的工具),行動,調試等
3
2
我喜歡JParsec(我剛剛發現由於託斯滕),因爲它不會生成代碼.. .--)也許效率較低,但對於小任務來說足夠了。
我找到一個相似的庫,JTopas。
有解析器(發電機與否)在Java Source一個良好的名單。
相關問題
- 1. Python是否有類似於Java的System.arraycopy?
- 2. Flex是否有類似於jQuery的庫?
- 3. 是否有類似於Java中
- 4. 是否有類似於Java的lxml或nokogiri的庫?
- 5. 是否有類似於<stdio.h>的java庫/包?
- 6. asp.net中是否有類似java的servlet
- 7. 在java中是否有類似於swift的dynamicType的關鍵字
- 8. 是否有.NET WPF中的控件類似於Java的javax.swing.Box Strut?
- 9. Java中是否有水平線類,類似於Point/Rectangle類?
- 10. 是否有類似Python的urllib2的庫?
- 11. 在Python中是否有類似於Java IllegalStateException的錯誤?
- 12. 在Java中是否有類似於WebClient.DownloadString的東西?
- 13. 在Java中是否有類似於路由器的cli框架?
- 14. 在.NET中是否有類似於Orekit的庫?
- 15. Scala/java是否有類似Python的StringIO?
- 16. 是否有類似rubygems.org的scala庫
- 17. 是否有類似於PdfReader的WordReader?
- 18. 是否有類似於「with」的功能?
- 19. angularjs是否有類似於jQuery的ajaxSetup?
- 20. 是否有類似於SMS的擴展?
- 21. 是否有類似於OnOrientationChanged的方法?
- 22. iOS是否有類似於Android的RecyclerView?
- 23. Java中是否有RedBeanPHP ORM類似物?
- 24. 是否有類似於Java/C++的for循環的Ruby版本?
- 25. 是否有類似於mysql的sqlsrv庫的函數mysql_real_escape_string?
- 26. 是否有類似於Android的Three20 Project的庫?
- 27. Java中是否有類似android中的android.os.Handler的類?
- 28. 是否有與C++類似的功能Java庫?
- 29. 是否有類似於appfuse的java web應用程序模板?
- 30. 是否有類似於GroovyConsole的Java控制檯/編輯器?
JavaCC非常棒。另請參閱Tom Copeland(Centennial Books)的書 – 2012-02-22 18:01:50