2015-09-15 3 views
1

Я новичок в регулярных выражениях (C#). Мне нужно получить названия брендов из HTML-документа. Я используюКак написать расширенное регулярное выражение?

MatchCollection m1 = Regex.Matches(html,"<td>.+?</td>",RegexOptions.Singleline); 

и результат 108 строк, подобных приведенным ниже. В каждом случае каждый другой бренд, Acer.

<td><a href=acer-phones-59.php> 
<img src="http://cdn2.gsmarena.com/vv/logos/lg_acer.gif" 
width=92 height=22 border=0 alt="Acer"></a></td> 
<td><a href=acer-phones-59.php>Acer phones (89)</a></td> 

мне нужны слова "Acer" только один раз, и "Acer-телефоны-59.php" только один раз. Как я могу настроить свое выражение, чтобы получить названия брендов и имя ссылки из каждой строки. Любая помощь будет принята с благодарностью, спасибо.

+2

пока вы ждете, когда кто-нибудь напишет ваше регулярное выражение, вы должны прочитать следующее: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454 # 1732454 – dognose

+0

Используйте HtmlagilityPack. Хотя у него есть некоторые специфические ошибки, если вы хотите манипулировать HTML-кодом, он достаточно надежный для всего веб-соскабливания. –

+0

Просто FYI: никто не сможет ответить на ваш вопрос. Перефразируйте его, укажите, как можно обнаружить элементы, содержащие требуемые тексты, а затем, возможно, придет ответ. –

ответ

-1
Regex.Matches(inputString, @"<td>(.|\n)+?href=(.+?)>(.|\n)+?alt="(.+)"", RegexOptions.None) 

Ответы представлены в Group2 и Group4.

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