C # regex pattern для извлечения URL-адресов из заданной строки – не полный URL-адрес html, но также и ссылки

Мне нужно регулярное выражение, которое будет делать следующее

Extract all strings which starts with http:// Extract all strings which starts with www. 

Поэтому мне нужно извлечь эти 2.

Например, приведенный ниже текст строки ниже

 house home go www.monstermmorpg.com nice hospital http://www.monstermmorpg.com this is incorrect url http://www.monstermmorpg.commerged continue 

Поэтому из приведенной выше строки я получу

  www.monstermmorpg.com http://www.monstermmorpg.com http://www.monstermmorpg.commerged 

Поиск регулярного выражения или другим способом. Спасибо.

C # 4.0

Вы можете написать несколько простых регулярных выражений, чтобы справиться с этим, или использовать более традиционное разделение строк + методология LINQ.

Regex

 var linkParser = new Regex(@"\b(?:https?://|www\.)\S+\b", RegexOptions.Compiled | RegexOptions.IgnoreCase); var rawString = "house home go www.monstermmorpg.com nice hospital http://www.monstermmorpg.com this is incorrect url http://www.monstermmorpg.commerged continue"; foreach(Match m in linkParser.Matches(rawString)) MessageBox.Show(m.Value); 

Объяснение :

 \b -matches a word boundary (spaces, periods..etc) (?: -define the beginning of a group, the ?: specifies not to capture the data within this group. https?:// - Match http or https (the '?' after the "s" makes it optional) | -OR www\. -literal string, match www. (the \. means a literal ".") ) -end group \S+ -match a series of non-whitespace characters. \b -match the closing word boundary. 

В основном шаблон ищет строки, начинающиеся с http:// OR https:// OR www. (?:https?://|www\.) http:// OR https:// OR www. (?:https?://|www\.) а затем соответствует всем символам до следующего пробела.

Традиционные варианты строк

 var rawString = "house home go www.monstermmorpg.com nice hospital http://www.monstermmorpg.com this is incorrect url http://www.monstermmorpg.commerged continue"; var links = rawString.Split("\t\n ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Where(s => s.StartsWith("http://") || s.StartsWith("www.") || s.StartsWith("https://")); foreach (string s in links) MessageBox.Show(s); 
  • Как я могу сделать ссылку на клики в NSAttributedString?
  • Редактирование гиперссылок и якорей в PDF с помощью ITextSharp
  • Как сохранить: активный стиль css после нажатия элемента
  • Удалить упорное подчеркивание ссылки
  • html ссылки не работают (с использованием base href)
  • Как добавить гиперссылку в JLabel
  • Пример использования гиперссылки в WPF
  • Как ссылаться на метод в javadoc?
  • Interesting Posts

    Возrotation строки C из функции

    Растровое преобразование растровых изображений с включенной функцией largeHeap

    Простое использование веб-службы в Java

    Объекты POST для Asp.net Core 2 являются NULL?

    Как разработать алгоритм для расчета голограммы

    Windows 7 / Outlook 2010 отключил элементы управления в окнах форм

    Что добавляет эти многоадресные IP-адреса в таблицу ARP, как статические записи?

    Почему в Android не работает «System.out.println»?

    Как предоставить разрешения удаленного доступа для сервера mysql для пользователя?

    Почему я сбой после освобождения MKMapView, если я больше не использую его?

    Получите div, чтобы принять 100% рост, минус фиксированная высота и нижний колонтитул

    Пользовательский андроид камеры

    C # Regex for Guid

    Альтернативы для удаленных подключений к сети VPN для работы в офисе, когда порт 1723TCP заблокирован – версия Windows (как клиентская, так и серверная).

    Передача объекта из объекта в fragment

    Давайте будем гением компьютера.