Использование Regex для поиска нескольких значений (групп) на веб-странице - PullRequest
0 голосов
/ 04 ноября 2011

Я пытаюсь получить 2 поля с веб-страницы. Я использую следующие две модели:

string paternExperience = @"Experience\s\:\s\<strong\>(?<Level>.*?)\<";
string paternAccount = @"account_value\""\>(?<Account>.*?)\<";

и следующий метод для получения значений, и он работает.

Regex.Matches(pageBody, patern..., RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase | RegexOptions.Compiled |RegexOptions.Multiline);

Я пытался избежать двойного использования метода для получения 2 значений, и я пытаюсь создать шаблон для получения Уровня и Учетной записи всего за один вызов метода Matches. Поэтому я подумал, что что-то вроде приведенного ниже должно работать ...

string paternBoth = @"Experience\s\:\s\<strong\>(?<Level>.*?)\< .* account_value\""\>(?<Account>.*?)\<";

Но это не работает, потому что я думаю, что эти два значения находятся на разных строках в html, поэтому я добавил RegexOptions.SingleLine и теперь время ожидания метода (страница имеет около 20 КБ).

Можете ли вы помочь мне, пожалуйста, с некоторыми советами? Спасибо!

1 Ответ

0 голосов
/ 04 ноября 2011

Вы можете попробовать поместить эти 2 значения в 1 переменную, а затем просто проверить эту переменную с помощью регулярного выражения.

Я знаю, что это не имеет никакого смысла, но я пробую подобные вещи, и иногда это действительно работает.Никогда не было такого сценария, но у меня были какие-то схожие проблемы в прошлом.Не может быть лучшим способом.но иногда заставить его работать важнее, чем заставить его выглядеть красиво.;)

...