Member 11698684 Ответов: 3

регулярное выражение для тега <span>


Я хочу написать регулярное выражение, которое пропускает идентификатор продукта

<span class="Price" id="product-id-453">34.65</span>

<span class="Price" id="product-id-553">343.65</span>


Regex regex = new Regex("<span class="\Price\" id="553">(.*)</span>");


У меня возникли проблемы в id части тега span

BillWoodruff

Аналогичный вопрос был задан и дан ответ здесь вчера:

http://www.codeproject.com/Questions/1062436/Regular-Expression-Worst-Situation?arn=44

Member 11698684

если идентификатор буквенно-цифровой
&ЛТ;заранее Ланг="C#"и&ГТ;&ЛТ;промежуток класс="цена" идентификатор="товар-идентификатор-543"и GT;(.*)&л;\/службы&ГТ;&ЛТ;/пре&ГТ;

3 Ответов

Рейтинг:
2

CPallini

Вы можете попробовать

Regex regex = new Regex(@"<span class=""Price"" id=""\d+"">(.*)</span>");


Member 11698684

если идентификатор имеет буквенно-цифровой продукт-код-543

&ЛТ;промежуток класс="цена" идентификатор="товар-идентификатор-543"и GT;(.)&ЛТ;/службы&ГТ;

Рейтинг:
1

OriginalGriff

в дополнение к тому, что говорит _Asif_, измените и свой код:

Regex regex = new Regex("<span class="\Price\" id="553">(.*)</span>");
Имеет обратную косую черту в неправильном месте и не компилируется:
Regex regex = new Regex("<span class=\"Price\" id=\"\d{3}\">(.*)</span>");



"f наш идентификатор-буквенно-цифровой продукт-id-543"
Если вы собираетесь использовать регулярные выражения, то вам нужно уметь вносить в них хотя бы базовые изменения!
Regex regex = new Regex("<span class=\"Price\" id=\"\.+?\">(.*)</span>");
Должны делать это.

Получить копию Экспрессо[^] - это бесплатно, и он проверяет и генерирует регулярные выражения.


Member 11698684

если наш код является буквенно-цифровой продукт-код-543

&ЛТ;промежуток класс="цена" идентификатор="товар-идентификатор-543"и GT;(.)&ЛТ;/службы&ГТ;

OriginalGriff

Ответ обновлен

Рейтинг:
0

_Asif_

Проблема заключается в жестком кодировании идентификатора "553", который не будет работать для идентификатора "453". Вы также можете игнорировать его, регулируя часть Id. Попробовать это

<span class="Price" id="\d+">(.*)<\/span>


Member 11698684

если идентификатор имеет буквенно-цифровой продукт-код-543

&ЛТ;промежуток класс="цена" идентификатор="товар-идентификатор-543"и GT;(.)&ЛТ;/службы&ГТ;