Получить значение между тегом <b> с помощью регулярных выражений в Yahoo Pipes

Я искал вверх и вниз, пытаясь найти ответ, который будет работать для меня, но не смог понять это. Я использую Yahoo Pipes для этого.

Lake Harmony Estates <b>Sleeps: 16</b>

Что мне нужно сделать, это извлечь Sleeps: 16 из тега B и вывести только это значение и ничего больше. Я не подозреваю, что это очень трудно сделать, но, учитывая мое ограниченное знание регулярных выражений, это доставляет мне неприятности. Я попытался адаптировать код регулярного выражения, относящийся к другим тегам, но просто не могу заставить его работать.

Любая помощь в этом будет оценена. Благодарю.

Редактировать: Вот моя труба, если вы хотите взглянуть на ужасное выражение, которое я создал. Хотя я пытаюсь работать над этим, это item.sleeps, последняя запись во втором регулярном выражении http://pipes.yahoo.com/pipes/pipe.info?_id=567026d850223b0075d80fd3c9bf7e75

2 ответа

Решение

Я разместил этот вопрос в Твиттере и получил ответ, который работал на меня.

(?s)^.*<b>(.*?)</b>.*

Замените на $1 и проверьте флаг G.

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

Это должно соответствовать вашим потребностям, предполагая, что HTML не перегружен кавычками и тому подобным. Обратите внимание, что + будет означать, что пусто <b> теги игнорируются. Кроме того, html не является действительно проходимым через регулярное выражение, так что это будет работать только для основных тегов. Это должно работать, даже если у тега есть идентификатор или свойство класса, но есть абсолютно другие способы нарушить это регулярное выражение.

/<b[^>]*>([^<]+)<\/b>/
Другие вопросы по тегам