Используя C #, как искать и вводить гиперссылки в блоке текста? - PullRequest
2 голосов
/ 27 июля 2010

По какой-то причине я не могу найти это через поиск, не совсем уверенный, какие ключевые слова использовать. В моем веб-приложении пользователи вводят текст в текстовые поля. Я хочу автоматически преобразовать любой http://somekind.oflink.com в HTML-тег привязки для них.

Как лучше всего захватить ссылку? Я хочу поддерживать только те ссылки, которые начинаются с "http://".

Спасибо!

Ответы [ 2 ]

5 голосов
/ 27 июля 2010

Заменить "(http://([^ ]+))" на "<a href=\"$1\">$2</a>"

  string input = "Why don't you use http://www.google.com for that?";
  string pattern = "(http://([^ ]+))";
  string replacement = "<a href=\"$1\">$2</a>";
  Regex rgx = new Regex(pattern);
  string result = rgx.Replace(input, replacement);
  Console.WriteLine("Original String: {0}", input);
  Console.WriteLine("Replacement String: {0}", result)
0 голосов
/ 27 июля 2010

Используйте регулярное выражение. Вы можете найти потерянные выражения здесь: http://regexlib.com/Search.aspx?k=url

А затем сделайте что-то вроде этого:

Regex regex = new Regex("YOUR PATTERN");
regex.Replace(
   textBlock, 
   delegate (Match m) { 
       return string.Format(@"<a href=""{0}"">{0}</a>", m.Groups[0]); 
   });

Обратите внимание, что вы должны заменить "ВАШ ШАБЛОН" на регулярное выражение, соответствующее вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...