"(HTTP | HTTPS): // ([A-Za-Z0-9 \ ~ \ \ @ \ # \ $ \% \ ^ \ & \ * \ (\) _ \ - \ = \ +! ? \\\ / \ \ \:.? \; \ '\,] *)»
это для http / https. Вы можете добавить ftp, files: /// и т. Д. Таким же образом.
чтобы сделать гиперссылку кликабельной, вы можете сделать что-то вроде этого:
FlowDocument myFlowDoc = new FlowDocument();
// Add hyperlink to the FlowDocument.
myFlowDoc.Blocks.Add(new Hyperlink(new Run(MatchedText)));
где MatchedText - это результат регулярного выражения. Но не только Add()
, вы должны найти начальную и конечную позицию сопоставленного текста и выполнить с ним действие, как указано выше.