2016-06-06 2 views
0

Мой вход является строкой, как включено следующее:регулярное выражение заменить, чтобы соответствовать все, включая угловые скобки

some random text <http…any characters> more random text 

или он может включать в себя протокол HTTPS

some random text <https…any characters> more random text 

Я хочу, чтобы мой выход, чтобы заменить что-нибудь «включая» угловые скобки с ничем. Так что мой вывод должен быть включено следующее:

some random text more random text 

Я использую C#, чтобы сделать это так, вот пример моего кода:

static string RemoveLinks(string source) 
    { 
     const string pattern = "Need Regex Pattern Here"; 

     return Regex.Replace(source, pattern, ""); 
    } 

Может кто-то пожалуйста, помогите спичкой шаблон?

+1

См. Http://stackoverflow.com/a/787951/3832970 –

ответ

2

Другой ответ прерывается, если имеется не более одного набора скобок. Я хотел бы использовать это вместо того, чтобы:

<[^>]+> 

По существу, класс голец гарантирует, что матч не улавливает окончание >.

В зависимости от ваших потребностей, вы можете добавить еще немного к регулярному выражению:

<http[^>]+> 

или, если вы должны убедиться в правильности его разделенных пробелами от окружающего текста:

(\s)<http[^>]+>(\s) 

В в этом случае вы замените его на $1$2, чтобы сохранить окружающие пространства. Или, если вы просто хотите нормальное пространство вместо этого, вы можете просто использовать строку " ". (Очевидно.)


Важно: Я рекомендую использовать сырые строки, как @"your regex with \backslashes", не регулярные строки.

0

Go here для получения всей информации.

Вероятно, что-то вроде:

string pattern = "\s<.*>\s"; 

Было бы правильно. Вы можете легко провести тестирование с помощью Notepad ++, так как он имеет опции регулярного выражения в своем инструменте замены &. Таким образом, вы можете сделать более точный тест и убедиться, что все работает правильно.

+0

Нужен ленивый квантификатор '?'. –

Смежные вопросы