繁体   English   中英

用antlr重写url

[英]url rewriting with antlr

我的Java程序需要重写html中的url(及时)。 我正在寻找合适的工具,想知道antlr是否正在为我完成这项工作?

例如:

<html><body>  <img src="foo.jpg" /> </body></html> 

应该改写为:

<html><body>  <img src="http://foo.com/foo.jpg" /> </body></html> 

我想从流中读取/写入流(逐字节)。

那正则表达式呢?

正如khmarbaise所说,首先要确定正则表达式是否可以做到。 但是在某些情况下,它们不能[*],然后我认为,ANTLR可能确实是一个合理的选择。

[*]有关此主题的数学背景,请参见http://en.wikipedia.org/wiki/Formal_grammar#The_Chomsky_hierarchy

更新资料

现在,您已经更新了问题,我看到了您真正想要做的:对于修改完整的HTML文件,我将使用NekoHTML之类的解析器或类似的解析器: http : //www.benmccann.com/dev-blog/ java-html-parsing-library-comparison /

然后,您可以使用它们来提取URL。 然后

  • 仅解析URL本身-例如使用Regexes,Java的URL类(或有时更好的URI:URI)或ANTLR
  • 修改解析的URL
  • 然后使用NekoHTML /重新写出HTML。

不要使用正则表达式来解析整个HTML文件! 从理论上讲,您可以使用ANTLR,但是要使其可靠地工作将非常困难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM