私はこのプロジェクトにC#を使用していますが、基本的に必要なのはプレーンテキストをHTMLに変換する方法です。テキスト内のリンクをHTML内のアンカーリンクに変換するための正規表現(実際にはStack Overflowで考えています)を見つけました。これ:
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についてまったく手がかりがなく、ロシア語のように見えることです。URLに許可された文字としてダッシュを含めるために、正規表現にどのような小さな編集を加える必要があるかを誰かが知っていますか?