Почему не срабатывает регулярка?

gvova

Client
Регистрация
23.11.2010
Сообщения
76
Благодарностей
23
Баллы
8
Здравствуйте. Помогите пожалуйста разобраться.

Иногда сталкиваюсь с странным явлением.
При тестировании регулярок в "Конструкторе регулярных выражений" , иногда, то что надо не обрабатывается как нужно .

Пример:

Надо выпарсить цену. Вот из этого куска кода

<div class="pi p2 pmoz"><span id="thePrice" class="price reprice reprice147" name="11947">80,00</span>

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

Пробую такие варианты:

(?<=">).*(?=</span>)
(?<=">).*?(?=</span>)
(?<=>).*?(?=</span>)
(?<=>).*(?=</span>)

Ничего не работает). Подскажите пожалуйста где косяк, и почему не получается)

1.png


Заранее благодарю за помощь)
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

(?<=">)[0-9].*?(?=</span>)
 
  • Спасибо
Реакции: gvova

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 270
Благодарностей
5 856
Баллы
113
Не срабатывает, потому что регулярка находит первое совпадение - символ > в строке и от него отталкивается дальше. Первое совпадение в данном случае не перед ценой стоит.
 
  • Спасибо
Реакции: gvova

gvova

Client
Регистрация
23.11.2010
Сообщения
76
Благодарностей
23
Баллы
8
Не срабатывает, потому что регулярка находит первое совпадение - символ > в строке и от него отталкивается дальше. Первое совпадение в данном случае не перед ценой стоит.
Если я правильно понял, то добавляя [0-9] мы обьясняем что нам нужно последнее соответствие?
Сори за нубские вопросы
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 270
Благодарностей
5 856
Баллы
113
  • Спасибо
Реакции: gvova

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113
(?<=>)[^>]*?(?=</span>)
(?<=id="thePrice"[^>]*?>)[^>]*?(?=</span>) - понадежнее вариант, если айди неизмено
 
  • Спасибо
Реакции: gvova

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)