我正在使用C#爲這個項目,基本上我需要的是一種將純文本轉換爲HTML的方式,我找到了一個正則表達式(實際上是Stack Overflow),用於將文本中的鏈接轉換爲在HTML錨鏈接,它看起來像這樣:正則表達式與URL提取
Regex regx = new Regex(@"https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?", RegexOptions.IgnoreCase);
MatchCollection mactches = regx.Matches(input);
foreach (Match match in mactches)
{
output = output.Replace(match.Value, String.Format("<a href=\"{0}\" target=\"_blank\">{0}</a>", match.Value));
}
它的偉大工程,但我發現,它並沒有考慮破折號一個缺陷( - )作爲URL的一部分,所以當它擊中第一破折號關閉錨標記。 所以我很明顯需要在正則表達式中包含破折號,但問題是我完全不知道RegEx的情況,它對我來說看起來像俄語。 有沒有人有一個想法,我需要對RegEx表達做些什麼小小的修改,以便在URL中包含一個破折號作爲允許的字符?
你可以舉一個它不匹配的URL的例子嗎?我的測試表明它的確如此。 – 2013-02-18 05:18:27
另外,你有'matches'拼寫錯誤:p – 2013-02-18 05:24:53