padonnak
@padonnak

Тонкости регулярных выражений как?

Собственно вот моя регулярка:
<h3>[\s].*"\/films.*">?(.*?<\/a>[\s].*[\s].*[\s].*<div>[\s].*[\s]?.*)<\/div>
но она не хочет работать хотя в regex101.com тестировал работает а в php нет если брать первое значение то срабатывает.

код в точности с такими же пробелами и \n как и на самой index странице
<table cellpadding="0" cellspacing="0" border="0" class="film-item"><tr> 
                        <td class="film-item-poster"><a href="/films/6459403093"><img src="/phpthumbs/phpThumb.php?src=/photos/3814.jpg&zc=1&w=140&h=200&hash=9b2cc52a42b33b0e5e3a53e9fc731816"></a>
                        <td class="film-item-about"><h3>
                                <a href="/films/6459403093"> НУЖЕН ЭТОТ КУСОК</a>
                            </h3>
                                                        xxxxxxxxxxxxxxxxxxxxxxxx
                <div class="film-item-seanses-list1">
                                                                    <div>   
                                                                                  НУЖЕН ЭТОТ КУСОК                                                                                                                 </div>
                                                                    <div>   
                                                                                    15:00                                                                                                                    </div>
                                                                    <div>   
                                                                                    17:00                                                                                                                    </div>
                                                            </div>
                    </tr></table>
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
вообще, парсинг DOM часто проще и нагляднее (хз что посоветовать, вроде ж есть nokogiri для пыха?), но он регекспов все равно не убежать

вы делаете типичную ошибку начинающих - ищете серебляную пулю/точку джи, которая сделает "все и сразу",

в то время как нужно научиться делать несколько манипуляций:
1) сначала по < h3 > простыми строковыми функциями вырезать кусок для поиска
2) потом в нем убрать все символы между > <
3) а затем уже искать

ну и искать нужно привыкать без дурацкого сочетания ".*"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Чтобы не насиловать мозг тонкостями регулярных выражений, используйте для парсинга html инструменты, которые для этого предназначены.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы