2016-11-29 1 views
1

Вот пример того, что информация, которую я пытаюсь извлечь с регулярным выражениемC# Regex - слова, пробелы, цифры и специальные символы в любом порядке

class="result-title hdrlnk">CHAVY IMPALA</a><span class="result-meta"><span class="result-price">$1300</span> 


class="result-title hdrlnk">1950 Buick Super straight 8 with 3 on the tree</a><span class="result-meta"><span class="result-price">$9850</span> 


class="result-title hdrlnk">Buick Lesabre Hardtop Coupe</a><span class="result-meta"><span class="result-price">$8800</span> 

Я был в состоянии успешно получить цену, но я имея проблемы с получением названия листинга для транспортных средств. Вот пример регулярного выражения

Этот код работает отлично подходит для получения цены и дополнительные кронштейны

Regex vg = new Regex(@"</a><span class=""result\-meta""><span class=""result-price"">\$\d+"); 

Я попытался использовать период в начале, но это будет отображаться только последнюю букву или число в заголовке листинга не будет отображаться весь заголовок листинга.

Regex vg = new Regex(@".</a><span class=""result\-meta""><span class=""result-price"">\$\d+"); 

Я также попытался

Regex vg = new Regex(@">.*</a><span class=""result\-meta""><span class=""result-price"">\$\d+"); 

и

Regex vg = new Regex(@">\d+</a><span class=""result\-meta""><span class=""result-price"">\$\d+"); 

, но не повезло с листинга титул :(Любая помощь будет оценена.

+0

Одна из причин, по которым мы никогда не рекомендуем анализировать html и xml с помощью REGEX, – jdweng

+2

Сделайте глубокий вдох и посмотрите [этот ответ] (http://stackoverflow.com/a/1732454/2307070). –

ответ

1

Попробуйте это регулярное выражение class=\"result-title hdrlnk\">(.*?)<\/a><span class=\"result-meta\"><span class=\"result-price\">(.*?)<\/span> , предпочтительно один листинг в то время.

string input = "your input" 
string pattern = @"class=\""result-title hdrlnk\"">(.*?)<\/a><span class=\""result-meta\""><span class=\""result-price\"">(.*?)<\/span>"); 
Match match = Regex.Matches(input, pattern); 
string title = match.Groups[1].Value; 
string price = match.Groups[2].Value 
+0

Ничего себе, что красиво !!! :) Спасибо!! –

+1

@Fabio Alfara Примите и отправьте меня с номера репутации дьявола –

+0

Как мне это сделать? Извините, что я здесь новый, и я хочу дать вам кредит :) –

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