Рейтинг:
12
Richard Deeming
Этот шаблон будет соответствовать значению, которое вы хотите получить из показанных входных данных:
<span[^>]*\sclass="currency"[^>]*>[^<]*</span>(?<value>[\d,]+)
Однако регулярные выражения не являются хорошим способом синтаксического анализа HTML. Было бы лучше использовать что-то вроде
AngleSharp[
^] или
HTML Agility Pack[
^] чтобы вместо этого разобрать документ.
BPaton
Спасибо за ответ, Ричард. Я попробовал использовать регулярное выражение, и оно жалуется на "\s", "currency" и "\d". Есть идеи? Я действительно пытался использовать AngleSharp, но не смог найти правильного решения
Richard Deeming
Если вы используете C#, вам нужно будет экранировать специальные символы в строке (\
и "
):
new Regex("<span[^>]*\\sclass=\"currency\"[^>]*>[^<]*</span>(?<value>[\\d,]+)"
Или используйте дословную строку и удвойте кавычки вокруг значения атрибута:
new Regex(@"<span[^>]*\sclass=""currency""[^>]*>[^<]*</span>(?<value>[\d,]+)"
BPaton
Спасибо, Ричард. Работает, как и ожидалось. Ценю вашу помощь.