С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 6

Сложная реглярка (многострочная)

05.03.2012, 21:34. Показов 2808. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дорогие программисты прошу Ваше помощи!
Есть такой кусок html кода :
HTML5
1
2
3
4
5
6
<div align="justify">
                   В переходную эпоху общество отчаянно ищет точку опоры. При Горбачеве бунтовали против власти, при Ельцине ждали от власти защиты. С появлением на политической авансцене Владимира Путина люди связывали надежду на стабильность и спокойствие.
 
   Новая книга Леонида Млечина — не только биография Владимира Путина, но и попытка разобраться в том, как изменилась Россия за последние годы. История страны не заканчивается на президентских выборах 2012 года. Нас подстерегает экономический кризис, Россия находится перед серьезными социальными вызовами.  И перед лидером государства неизбежно встает вопрос: что дальше? Что делать в ситуации, когда даже мыслящая публика не знает, что предпринять?
   Сейчас, когда наша страна стоит на пороге нового политического цикла, самое время обернуться назад и спокойно оценить все то, что уже было сделано. Но еще важнее - задуматься о будущем.
            </div>
нужно заганать все что есть между этими дивами в переменную !
Поблема в следуючем -- при просмотре этого куска в нотпаде++ есть символы CRLF
Зарание благодарет !
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2012, 21:34
Ответы с готовыми решениями:

Многострочная надпись
Можно ли Label сделать многострочной или чем заменить?

Многострочная надпись
Привет. Я задумала информатику своему подарить прогу: нажимает он на на название группы, название песни, и ему выдается её текст и аккорды....

Многострочная метка
Здорово, парни. Что-то тут заказчику понадобилось в метке(Label) перед полем(Edit) писать целое предложение из 3 слов, а не F или P,...

9
239 / 236 / 43
Регистрация: 16.03.2011
Сообщений: 750
06.03.2012, 10:02
RegExp: /align="justify">(.+)</div>/s
pattern: align="justify">(.+)</div>
flags: s
1 capturing groups:
group 1: (.+)
1
0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 6
06.03.2012, 10:11  [ТС]
Спасибо большое ! Я вчера такое же соорудил !!
Только получается что в тексте есть пара <div align="justify">.......</div>
Есть ли возможноть обрезать сразу регуляркой ... что б не выбирало пол страницы , а только первое вхождение !!!??????
0
239 / 236 / 43
Регистрация: 16.03.2011
Сообщений: 750
06.03.2012, 11:46
То что в () это группировка.
Если есть текст: qwerytuyiu можно составить RegExp: qwery(\w+)
PHP
1
2
preg_match('@^qwery(\w+)@i',"qwerytuyiu", $matches);
echo $matches[1];
Другой пример:
PHP
1
2
3
4
5
6
7
8
9
10
<?php
// Извлекаем имя хоста из URL
preg_match('@^(?:http://)?([^/]+)@i',
    "http://www.php.net/index.html", $matches);
$host = $matches[1];
 
// извлекаем две последние части имени хоста
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo "доменное имя: {$matches[0]}\n";
?>
Если что спрашивайте тут есть много знающих людей, тем кто помог жмите кнопку спасибо.
1
0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 6
08.03.2012, 02:38  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!-- <div class="news_h2">
                Аннотация
            </div>-->
 
            <br>
            <div align="justify">
                   В переходную эпоху общество отчаянно ищет точку опоры. При Горбачеве бунтовали против власти, при Ельцине ждали от власти защиты. С появлением на политической авансцене Владимира Путина люди связывали надежду на стабильность и спокойствие.
 
   Новая книга Леонида Млечина — не только биография Владимира Путина, но и попытка разобраться в том, как изменилась Россия за последние годы. История страны не заканчивается на президентских выборах 2012 года. Нас подстерегает экономический кризис, Россия находится перед серьезными социальными вызовами.  И перед лидером государства неизбежно встает вопрос: что дальше? Что делать в ситуации, когда даже мыслящая публика не знает, что предпринять?
   Сейчас, когда наша страна стоит на пороге нового политического цикла, самое время обернуться назад и спокойно оценить все то, что уже было сделано. Но еще важнее - задуматься о будущем.
            </div>
            <hr class="hr_not">
        </td>
    </tr>
                    <tr>
        <td colspan="2">
 
                <div class="news_h2">Отзывы читателей</div>
                <script src="/bitrix/templates/.default/components/generic/forum.topic.reviews/template1/script.js?1288331745" 
                    </td>
                            </tr>
                            <tr>
                            <td colspan="2">
                                &nbsp;&nbsp; В переходную эпоху общество отчаянно ищет точку опоры. При Горбачеве бунтовали против власти, при Ельцине ждали от власти защиты. С появлением на политической авансцене Владимира Путина люди связывали надежду на стабильность и спокойствие.<br />
<br />
&nbsp;&nbsp; Новая книга Леонида Млечина — не только биография Владимира Путина, но и попытка разобраться в том, как изменилась Россия за последние годы. История страны не заканчивается на президентских выборах 2012 года. Нас подстерегает экономический кризис, Россия находится перед серьезными социальными вызовами.&nbsp;&nbsp;И перед лидером государства неизбежно встает вопрос: что дальше? Что делать в ситуации, когда даже мыслящая публика не знает, что предпринять?<br />
&nbsp;&nbsp; Сейчас, когда наша страна стоит на пороге нового политического цикла, самое время обернуться назад и спокойно оценить все то, что уже было сделано. Но еще важнее - задуматься о будущем.<br />
                            </td>
                        </tr>
                    </tbody>
                </table></textarea>
 
                <br/>
                <input type="button" name="copyTobuffer" value="Скопировать в буфер" id="copyToBuffer" />
                <br/><br/>&nbsp;
            </form></div>
            
<div align="justify">
        <table width=100% border=0 cellspacing=0 cellpadding=0>
            <tr>
                <td width=100% nowrap class=top_menu_2>
                    <div style="margin-left:auto; margin-right:auto;">
</div>
Есть вот такой урывок кода .. первое вхождение <div align="justify">

Написал вот такую регулярку :

preg_match_all("'<div\s+align=\"justify\ ">(\w+)</div>'si",$text,$result);
Ловить то ловит .. только вот попадает в нее все что есть после <div align="justify"> и до конца тоесть до последнего </div>

Как зделать чтоб выбирало только до первого закриваючего -- тоеть "задуматься о будущем.
</div>"

Зарание благодарен !!
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
08.03.2012, 06:56
Цитата Сообщение от roman.hemich Посмотреть сообщение
Как зделать чтоб выбирало только до первого закриваючего
PHP
1
'~<div\s+align="justify">(.*?)</div>~is'
Найдет в таких текстах такие вещи:
foo bar
<div align="justify">lorem ipsum</div>
baz
<div align="justify">lorem ipsum</div>
baz


foo bar
<div align="justify">
. . . . lorem baz
. . . . <div align="justify">lorem ipsum</div>
. . . . ipsum
</div>
baz
2
0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 6
10.03.2012, 11:44  [ТС]
Всем большое спасибо !!!
Выборка - нормальная - а еще укоротить есть возможность ! ??
При таком подходе - оно вибирает все что есть между такими тегами на странице - а нужно в идеале только первый ! Хотя и так подходит .. потом можно просто к первому елементу массива обращаться !
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
10.03.2012, 11:58
Цитата Сообщение от roman.hemich Посмотреть сообщение
При таком подходе - оно вибирает все что есть между такими тегами на странице - а нужно в идеале только первый
preg_match() ищет одно первое совпадение.
preg_match_all() ищет все совпадения.
1
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60
17.02.2014, 11:56
Цитата Сообщение от Vovan-VE Посмотреть сообщение
PHP
1
'~<div\s+align="justify">(.*?)</div>~is'
Найдет в таких текстах такие вещи:
foo bar
<div align="justify">lorem ipsum</div>
baz
<div align="justify">lorem ipsum</div>
baz


foo bar
<div align="justify">
. . . . lorem baz
. . . . <div align="justify">lorem ipsum</div>
. . . . ipsum
</div>
baz
Не моли бы вы пояснить, что в данном примере
PHP
1
'~<div\s+align="justify">(.*?)</div>~is'
дает символ "?"
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
17.02.2014, 14:08
Цитата Сообщение от necheyhin_a_v Посмотреть сообщение
Не моли бы вы пояснить, что в данном примере дает символ "?"
Поскольку в регулярке нет модификатора /U , данный ? превращает жадный квантификатор * в НЕжадный *? . См. «Жадность квантификаторов».
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2014, 14:08
Помогаю со студенческими работами здесь

Многострочная строка
Всем привет. Столкнулся с трудностью. Есть, например, следующий кусок текста, причем весь он (с символами переноса строки) помещен в одну...

Многострочная строка
У меня в Текстбоксе есть Многострочный текст. Хочу в цикле обойти и обработать все строки. Подскажите как сделать. Заранее спс

Многострочная ячейка в dbgrid
думаю мне сюда. много гуглил, но информации не много. похожий вопрос. не вмещается большой текст, необходим перенос на другую строку в...

TstringGrid многострочная ячейка
Возможно ли в StringGrid сделать что то вроде этого WordWrap:=true; // ????? Перенос по строкам

Документ (многострочная часть)
Есть документ (1с v77) с табличной частью. Табличная часть имеет два реквизита: Специальность (тип справочник.Специальности) и сумма. Надо...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru