2011-07-29 15 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>

출력 문자열 예 "안녕이 http://www.example.com URL의 예입니다" 내 웹 사이트에서 인쇄 할 때 "일"하십시오.

이 작업을 수행하는 방법에 대한 조언을 주시면 감사하겠습니다.

답변

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

당신은 신이며, 정말 고마워요. –