2011-07-29 4 views
1

私が話していることを理解するために、まずこの下の例を見てください。文字列の "urls"をアンカータグのXMLノードに変換する方法をスカラー

入力は文字列です。 XML(別名NodeSeq)が出力になります。私は唯一のへのリンクをしたいので、全体のマークアップ言語を使用するように見ているわけではない

文字列の例 = <div>Hi this is an example url <a href="http://www.example.com">http://www.example.com</a></div>

入力文字列の例 =「こんにちは、これが例のURL http://www.example.comある」

出力私は自分のウェブサイトでそれらをプリントアウトするときに "仕事"をします。

私はこれをどのように達成すべきかに関するアドバイスをいただきたいと思います。

答えて

3

これを試してみてください:

val urlRegex = """(?i)\b(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[-A-Za-z0-9+&@#/%=~_|]""".r 

def conv(s: String) = scala.xml.XML.loadString("<div>"+(urlRegex replaceAllIn (s, m => """<a href="%s">%s</a>""" format (m.matched, m.matched)))+"</div>") 

は、URLの正規表現についてthis questionを参照してください。上の例はそこで最も簡単な例です。

+0

あなたは神様です、ありがとうございます –