2012-10-14 98 views
0

我需要將字符串轉換爲另一個字符串。 一個例子是:使用Java將嵌套的Markdown轉換爲HTML

#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庫?


UPDATE

它看起來非常相似降價。但隨着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

所有三個Java庫,允許改造成降價HTML有認識內部鏈接的圖像問題。

,我決定使用的方法是一個兩步走的方法:

  • 運行庫;
  • 使用Java代碼來糾正錯誤。

這不是一個理想的解決方案,但它的工作原理。

回答

2

是在inputstring降價?是的,它工作在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]完全傳遞原始降價測試套件

+0

如果不明確降價,還有其他wiki格式...我希望我能記住項目名稱,但有一個Eclipse項目爲各種wiki格式轉換提供了一個庫。也許與Mylyn插件有關。 – cjstehno

+0

它與降價類似,但使用您提供的庫會產生一些混亂的HTML代碼。 –

+0

@VitalijZadneprovskij你最終使用了哪些庫?我會對結果感興趣;) –

0

最好的辦法就是看看使用XSLT。 Java將XSLT作爲JAXP庫的一部分,這將允許您使用XSL定義模式匹配和轉換規則,並將它們應用於輸入文本。 Eclipse有一個很好的工具,可以讓你構建和測試XSL。

+0

輸入絕對非XML,所以XML工具不會是一個不錯的選擇我猜。 –

+0

XSLT是否用於轉換符合XML的文本? –

+0

糟糕。好點子。 –

1

您可以使用正則表達式從文本中提取URL,然後連接成模板輸出字符串。

提取URLS所需的正則表達式有很多例子,this for example

使用上面的方法,你可以寫這樣的:

String[] split = yourInput.split("[ ![t]("); 
String[] urls = pullLinks(yourInput) 
String output = split[0] + "<a href=\"" + urls[1] + "\"><img src=\"" + urls[0] + "\" /></a>";