0

我需要将字符串转换成另一个字符串。一个例子是:

#Fashion #Helmet #Woman #Scifi [ ![t](http://24.media.tumblr.com/tumblr_mbv08xkdzy1qfzis2o1_1280.gif) ](http://bit.ly/P1omax) Rob Goodwin

必须将其转换为 HTML 代码:

#Fashion #Helmet #Woman #Scifi<a href="http://bit.ly/P1omax"><img src="http://24.media.tumblr.com/tumblr_mbv08xkdzy1qfzis2o1_1280.gif" /></a>

有没有一个Java库可以做到这一点?


更新

它看起来与 Markdown 非常相似。但是用 markdownj 处理它会产生一个混乱的 HTML:

<h1>Fashion #Helmet #Woman #Scifi</h1>

<p><a href="a href="http://24.media.tumblr.com/tumblr_mbv08xkdzy1qfzis2o1_1280.gif">http://24.media.tumblr.com/tumblr_mbv08xkdzy1qfzis2o1_1280.gif</a"> <img src="<a href="http://bit.ly/P1omax">http://bit.ly/P1omax</a>" alt="t</a> " />
Rob Goodwin</p>

更新 2

允许将 Markdown 转换为 HTML 的所有三个 Java 库在识别链接内的图像时都存在问题。

我决定使用的方法是两步法:

  • 运行你的图书馆;
  • 使用 Java 代码更正错误。

这不是一个理想的解决方案,但它确实有效。

4

3 回答 3

2

输入字符串是否降价?是的,它在http://daringfireball.net/projects/markdown/dingus中有效,它生成

<h1>Fashion #Helmet #Woman #Scifi <a href="http://bit.ly/P1omax"> <img src="http://24.media.tumblr.com/tumblr_mbv08xkdzy1qfzis2o1_1280.gif" alt="t" title="" /> </a> Rob Goodwin</h1>

因此:http ://code.google.com/p/markdownj/ 或:http ://en.wikipedia.org/wiki/List_of_Markdown_implementations

https://github.com/sirthias/pegdown看起来不错。他们声称:

[pegdown] 完全通过原始 Markdown 测试套件

于 2012-10-14T12:28:13.717 回答
1

您可以使用正则表达式从文本中提取 URL,然后连接成模板输出字符串。

提取 URLS 所需的正则表达式有很多示例,例如.

使用上述方法,您可以编写如下内容:

String[] split = yourInput.split("[ ![t](");
String[] urls = pullLinks(yourInput)
String output = split[0] + "<a href=\"" + urls[1] + "\"><img src=\"" + urls[0] + "\" /></a>";
于 2012-10-14T12:21:29.273 回答
0

最好的办法是使用 XSLT。Java 包含 XSLT 作为 JAXP 库的一部分,这将允许您使用 XSL 定义模式匹配和转换规则,并将它们应用于输入文本。Eclipse 有一个出色的工具可以让您构建和测试 XSL。

于 2012-10-14T12:00:57.490 回答