我在这个项目中使用 C#,基本上我需要的是一种将纯文本转换为 HTML 的方法,我找到了一个正则表达式(我认为实际上是在 Stack Overflow 上)用于将文本中的链接转换为 HTML 中的锚链接,它看起来像这个:
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 中包含破折号作为允许的字符?