2013-05-19 3 views
-2

Я ищу способ получить строки из строки с определенными тегами, например. У меня есть эта строка: "Hello <date> My <name> is <your name>" Мне нужно вернуть это: <date> <name> <your name>Получить строку с конкретными тегами в C#

в массиве или списке

только слов начинается и заканчивается <>.

Спасибо, миллион! :-)

+0

Как коррелировать вход и выход? Я не могу сказать, что вы делаете, чтобы добраться между ними. Ах, ваше редактирование очистило его. –

+0

Можете ли вы отправить полный образец? Неясно, каковы ваши данные, результаты и что вы пробовали. – oleksii

+2

Что вы пробовали? Какие варианты вы рассмотрели? Мы не место, которое передает код людям, которые не прикладывают никаких усилий. – Oded

ответ

4

Вы можете использовать шаблон Regex <.*?> получить каждое слово, т.е.

MatchCollection matches = Regex.Matches(input, "<.*?>"); 

Вы можете перебрать коллекцию, чтобы получить тег.

+0

Лучше, ИМО, чем поиск символов, которые не являются '<>', состоит в том, чтобы сделать '*' не жадным: '" <.*?> ". –

+0

Согласен, я обновил свой ответ. –

+0

Да, я предпочитаю [^>] *> –

1

Майк Precup бить меня на 1 минуту :) в любом случае вы должны использовать Regular Expressions, например:

var s = @"some <thing> is different <about> this <string>"; 
var pattern = @"(?<=\<)(.*?)(?=\>)"; 
var regex = new Regex(pattern); 
var matches = regex.Matches(s); 
foreach (Match match in matches) 
{ 
    match.Groups[0].Captures[0].Value.Dump(); // using LINQPad 
} 

и выход:

thing 
about 
string 

С наилучшими пожеланиями, П.

+0

Да, этот код работает как шарм! легко, быстро, здорово. Бесконечно благодарен! – user1744509