Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142

Не могу составить регулярку

23.08.2016, 11:45. Показов 799. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята помогите. не могу составить регулярку.
Суть вопроса в том что мне надо за,рать полностью текст из div'a
HTML5
1
2
3
4
5
6
<div class="hidden" itemprop="description">
                <div>
<p>В наше время большое количество людей проводят длительное время за компьютером, и естественно это плохо влияет на зрение.</p>
<p>В перспективе появляется различные проблемы в этой области. Что бы не допустить серьезных проблем с глазами, Вам стоит прочитать представленную книгу, из которой Вы узнаете как поддерживать здоровье своих глаз в прекрасной форме.</p>
<p style="text-align: left;">Вы узнаете, какие упражнения помогут расслабиться Вашим глазам, получите массу психологических установок, выполняя которые у Вас никогда не будет проблем со зрением. Так же узнаете, какие упражнения поможет исправить целых ряд болезней связанных с глазами.</p>
</div>          </div>
Дело в том, что на каждой странице этого сайта структура разметки разная есть еще такая
HTML5
1
2
3
4
5
6
<div class="hidden" itemprop="description">
                <div style="text-align: left;">
<p>Самый простой способ поменять свою жизнь, это начать правильно питаться. Но как выбрать продукты для этого? Какие блюда приготовить? Где найти рецепты таких блюд?</p>
<p>Все это и много другое связанное с правильным питанием Вы сможете узнать на бесплатном вебинаре, который может посмотреть любой желающий человек.</p>
<p>Вместе со сменой Вашего ежедневного рациона, Вы заметите, как начнет, меняется в лучшую сторону Ваша жизнь. Вы станете более энергичны, жизнерадостнее, привлекательнее, и всего этого Вы сможете достичь, применяя все советы, которые услышите на нашем вебинаре. Присоединяйтесь к числу тех людей, которые начали вести здоровый образ жизни.</p>
</div>          </div>
Помогите мне составить регулярку которая будет забирать полностью все не смотря на разметку внутри тэга <div class="hidden" itemprop="description">.... то есть регулярка долна выглядить примерно так (упрашенный вариант)

PHP
1
preg_match('|\<div class=\"hidden\" itemprop=\"description\"\>(.*)\<\/div\>|U', $page, $text_mass);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2016, 11:45
Ответы с готовыми решениями:

Не могу составить регулярку для поиска текста
Собственно имею текст: Собственно делаю код регулярным выражением: if (!preg_match(&quot;/&lt;span...

Не могу сделать регулярку
У меня в переменной есть строка text/html; charset=windows-1251 в зависимости от кодировки эта переменная изменяется. То есть мне надо...

Нужно составить регулярку
Нужно, чтобы регулярка вытаскивала текст из теков &lt;div class=&quot;profile_in_game_header&quot;&gt;Этот текст&lt;/div&gt; и выводила его на...

3
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.08.2016, 12:01
Здесь нужен флаг s, чтобы искать мультистрочно:
PHP
1
2
3
4
5
6
7
8
$a = '<div class="hidden" itemprop="description">
    <div>
<p>В наше время большое количество людей проводят длительное время за компьютером, и естественно это плохо влияет на зрение.</p>
<p>В перспективе появляется различные проблемы в этой области. Что бы не допустить серьезных проблем с глазами, Вам стоит прочитать представленную книгу, из которой Вы узнаете как поддерживать здоровье своих глаз в прекрасной форме.</p>
<p style="text-align: left;">Вы узнаете, какие упражнения помогут расслабиться Вашим глазам, получите массу психологических установок, выполняя которые у Вас никогда не будет проблем со зрением. Так же узнаете, какие упражнения поможет исправить целых ряд болезней связанных с глазами.</p>
</div>          </div>';
preg_match_all("/<div class=\"hidden\" itemprop=\"description\">(.*)<\/div>/s", $a, $m);
print_r($m[1]);
Code
1
2
3
4
5
6
7
8
Array
(
    [0] => <div>
<p>В наше время большое количество людей проводят длительное время за компьютером, и естественно это плохо влияет на зрение.</p>
<p>В перспективе появляется различные проблемы в этой области. Что бы не допустить серьезных проблем с глазами, Вам стоит прочитать представленную книгу, из которой Вы узнаете как поддерживать здоровье своих глаз в прекрасной форме.</p>
<p style="text-align: left;">Вы узнаете, какие упражнения помогут расслабиться Вашим глазам, получите массу психологических установок, выполняя которые у Вас никогда не будет проблем со зрением. Так же узнаете, какие упражнения поможет исправить целых ряд болезней связанных с глазами.</p>
</div>          </div>
)
0
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142
24.08.2016, 09:55  [ТС]
Проблема остается актуальной. Есть три варианта разметки из которой нужно достать значения.

вариант 1
HTML5
1
2
3
4
5
<div id="kurs-description-main" class="kurs-description-main">
            <p style="text-align: left;">Мечтаете стать успешным инфобизнесменом, но ничего не понимаете в технических моментах инфобизнеса? Вам обязательно стоит изучить данный курс!<br />По итогам курса вы научитесь:<br />Грамотно разбираться в технической стороне инфобизнеса, так необходимой для успешного развития и финансового процветания;<br />Создавать и грамотно управлять сайтом, без посторонней помощи;<br />Правильно разрабатывать инфопродукты, учитывая все тонкости и технические особенности товара;<br />Эффективно создавать и работать с партнерскими программами;<br />Принимать оплату на сайте;<br />Эффективно оформлять страницы сайта при помощи графических программ (фотошоп);<br />Создавать видеоуроки, аудио- и видеозаписи;<br />Применять живое видео;<br />Использовать электронные книги и многому другому.<br />Торопись пройти курс, и ты станешь профессионалом инфобизнеса с невероятным уровнем дохода!</p>      </div>
    </div>
 
    <div class="dop-info-product">
вариант 2
HTML5
1
2
3
4
5
6
7
8
9
<div id="kurs-description-main" class="kurs-description-main">
            <div>
<p>Иногда для заработка есть знания и опыт, однако что-то всё равно мешает. Если это - про вас, то именно вам нужно прослушать видеокурс "Три кита финансовой свободы". Автор очень доступно раскладывает всё "по полочкам".</p>
<p>В течение года после прослушивания видеокурса вы даже сами не заметите, как станете зарабатывать в разы больше. А всё потому, что у вас появится то необходимое, чего у вас не было до прослушивания курса.</p>
<p style="text-align: left;">Вы ещё ждёте? Хотите стать финансово независимым человеком? Сотни людей уже сделали свой выбор. Сделайте и вы - прослушайте видеокурс и становитесь Богатым, Успешным и Счастливым.</p>
</div>      </div>
    </div>
 
    <div class="dop-info-product">
Мне нужно забрать все значения между тегами <div id="kurs-description-main" class="kurs-description-main">(.*)<div class="dop-info-product"> несмотря на их разметку между этими тэгами.. Дело в том, что на этом сайте более 5000 таких страниц. И я не уверен что разметка на всех этих страницах будет исполнина в вариантах то что я показал. Надо я так понял написать одну универсальную регулярку которой будет все равно на разметку между этими тэгами. У меня не получается... знаний не хватает. Помогите ребята) я уверен что решение есть. То что посоветовал мне Пифагор... она не со всеми работает.
0
276 / 201 / 143
Регистрация: 22.01.2016
Сообщений: 637
24.08.2016, 19:20
PHP
1
2
3
preg_match_all("~(?<==\"kurs-description-main\">).*(?=<div\s+class=\"dop-info-product\">)~siu", $yourText, $m);
$content = preg_replace("~<[^>]*>~", '', $m[0][0]);
echo $content;
http://sandbox.onlinephpfuncti... be329b13df
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2016, 19:20
Помогаю со студенческими работами здесь

Составить простую регулярку
Есть система статистики для игры CS 1.6. Но сейчас на сервере крутится не классический КС, а модификация &quot;Укради флаг&quot;. К...

как составить регулярку?
собсно сабж, как в переменную загнать только то, что в двойных кавычках? $res = 'test&quot;name&quot;test' т.е. что бы было только name

Как составить регулярку
Есть текст в файле, нужно найти два значения. Нужно найти до кавычки &lt;lang name=&quot;тут имя&quot; и до закрывающего тега &lt;/lang&gt; Вот...

Составить простую регулярку
$text = '&quot;max_post_len&quot;:280,&quot;post_hash&quot;:&quot;c8b3b314d02c2672a2&quot;,&quot;media_types&quot;: Нужно получить из этой строки значение параметра...

Составить простенькую регулярку)
Помогите, ребят :) Есть веб-страничка. На ней текст такого вида: XX http://site1.ru http://site2.ru http://site2.ru ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru