Получить значение между тегом <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>/