Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Тексты > Вырезать весь текст от класса до тега картинки |
Автор: mstdmstd 30.11.2015, 11:14 | ||||
Всем привет, Нужно из строки вида
Вырезать весь текст от класса someclass до тега картинки Регулярка
режет текст до ближайшего тега параграфа А как правильно вырезать текст до картинки? Спасибо! |
Автор: ksnk 1.12.2015, 11:16 | ||
|
Автор: mstdmstd 2.12.2015, 13:55 |
Спасибо, помогло! А вот еще подскажите, для парсинга html-кода мне советовали пользовать DOMDocument и DOMXpath - кажется, они проще, но только в случае если работать с валидным html-кодом. Если же html-код не валиден (незакрывающиеся теги ошибки синтасиса итд), то регулярка кажется хоть и более заковырестейб но более гибкойю Ка по вашему? |
Автор: ksnk 2.12.2015, 17:03 |
Про парсинг невалидного html - наткнулся на http://habrahabr.ru/post/110112/. Сам, правда, не проверял, но на первый взгляд - компактно и достаточно удобно для не очень больших документов. Работающие регулярки, очевидно, лучше, чем неработающие на невалидном HTML стандартные средства. Добавлено через 2 минуты и 7 секунд https://github.com/olamedia/nokogiri |
Автор: mstdmstd 3.12.2015, 16:30 |
Еще раз спасибо! И разжуйте пожалуйста что означает комбинауция .+? перед "<img" ? Что то типа "Любой текст(включая спецсимволы) пока не встретиться тег картинки" ? |
Автор: ksnk 3.12.2015, 18:30 |
.+ - не менее одного любого символа. Здесь, возможно, стоит поставить * вместо +, если до тега img может ничего и не быть. ?- Режим - ungreedy - это значит, что будет захвачена последовательность минимально возможной длины. Лучше почитать про регулярки и модификаторы в документации, инструмент удобный, но со своей собственной логикой и не без ограничений и причуд. |