Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Регулярные выражения (RegExp, Regular, eregi, preg)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

Rendom



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Учебники регулярных выражений
 
Кто сможет составить выражение для такого случая:

Код:
 
<table border=0>
<tr>
   <td>blablablabla<table border=0><tr><td>blablabla_UNIQTEXT_blablabla</td></tr></table></td>
   <td><table border=1><tr><td>blablabla</td></tr></table>666666</td>
</tr
</table>
 

Нужно удалить из этого всего кусок "<table border=0><tr><td>blablabla_UNIQTEXT_blablabla</td></tr></table>". Иными словами нужно вырезать текст от "<table" до "</table>" внутри которого есть строка "UNIQTEXT", но при этом не удалить лишнего. В результате должно получиться:

Код:
 
<table border=0>
<tr>
   <td>blablablabla</td>
   <td><table border=1><tr><td>blablabla</td></tr></table>666666</td>
</tr
</table>
 

Всего записей: 115 | Зарегистр. 27-10-2002 | Отправлено: 23:26 17-05-2005 | Исправлено: AZJIO, 04:05 09-12-2014
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vergiliy2
Цитата:
<DIV class=info><NOBR>Ненужный текст</NOBR></DIV>
что-то гуру все молчат...
тогда предложу свой дилетанский вариант решения "в лоб":

Код:
/\<DIV class\=info\>\<NOBR\>.+?\<\/DIV\>/i  

 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 21:48 20-01-2007
sTa1kEr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK

Цитата:
/\<DIV class\=info\>\<NOBR\>.+?\<\/DIV\>/i

1. Вызовет ошибку компиляции шаблона
2. Экранировать "=", "<" и ">" не нужно
vergiliy2
Если внутри div-а не должно быть тегов и переносов строки.

Код:
 
$s = preg_replace("|<div\s+class=\"?info\"?\s*>\s*<nobr>[^<]+</nobr>\s*</div>|i", "", $s);
 

Всего записей: 279 | Зарегистр. 28-07-2005 | Отправлено: 12:50 22-01-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sTa1kEr
Цитата:
1. Вызовет ошибку компиляции шаблона  
какую ошибку? вообще-то, я проверил, на PHP5 все отработало как часы...
Цитата:
2. Экранировать "=", "<" и ">" не нужно  
это может быть. Открыл хелп и тщательно переписал оттуда символы, которые экранируются функцией preg_quote() Подробнее...
 
кстати, на переводы строки и дополнительные тэги в Ненужном тексте, моему варианту глубоко плевать...
А вообще, хорошо - vergiliy2 получил целых два рабочих варианта. Можно выбрать более понятный - подходящий-)
 
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 13:16 22-01-2007
sTa1kEr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK

Цитата:
какую ошибку? вообще-то, я проверил, на PHP5 все отработало как часы...

Прошу прощенья, не заметил экранирующий слешь. Слишком уж их много у тебя

Цитата:
кстати, на переводы строки и дополнительные тэги в Ненужном тексте, моему варианту глубоко плевать...  

Правда?
Попробуй с такой строкой

Код:
 
<DIV class=info><NOBR>Ненужный
текст</NOBR></DIV>
 

Для того, что бы в .+ входили переводы на новую строчку нужно добавить модификатор s.
Но тогда у тебя есть вероятность, что ты удалишь лишнее (в моем варианте это исключено). Как лучше сделать зависит от того, что должно находится внутри тега. По примеру vergiliy2 там только текст.

Всего записей: 279 | Зарегистр. 28-07-2005 | Отправлено: 13:39 22-01-2007
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хоть убейте, не могу понять как работает функция ereg_replace... Помгите написать 2 функции:
 
Первая преобразовывает все вхождения типа [url]ssilka[/url] в <a target="_blank" href="ssilka">ssilka</a>
 
Вторая: [url=ssilka]text[/url] в <a target="_blank" href="ssilka">text</a>
 
Спасибо

Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 12:30 26-01-2007 | Исправлено: Jokerjar, 12:35 26-01-2007
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну плииииз!  Помогите... Действительно очень нужно. По-любому кто-то обладает в регулярных выражениях...

Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 12:50 28-01-2007
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть кусок кода:

Код:
echo preg_replace('/\[b_](.*)\[\/b_]/', '<b>$1</b>', '[b_]рас [b_]два[/b_][/b_]');

на экран выводится жирное рас [b_]два[/b_], как без цикла сделать чтобы заменились все бб коды а не только начальный и конечный?

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 17:16 17-02-2007 | Исправлено: andead, 17:17 17-02-2007
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andead
while(preg_match(регексп,$str))
$str=preg_replace(регексп,... );

----------
The Abyss - UO, LA2, Ботва, BSFG

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 23:17 17-02-2007
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Advanced_Guest
без этого никак? может модификатор какой модный есть?

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 12:14 18-02-2007
niktata



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Буду признателен, если поможете.
Имеется:

Код:
 
<td style='color: #555555'><p><img src="/files/resumes/id41.jpg" border="1" alt="Администратор" title="Администратор" width="200" height="311" align="left" />Без вредных привычек,коммуникабельная,общительная,обучаемая,есть большое желание работать,доброжелательная.</p><p>Навыки:ПК,неплохо печатаю на комп,продажи из бара и абонементов,отчеты,солярий,ответы на телефоные звонки,чистота,касса.</p></td>
 

 
Нужно выдрать картинку. Чтобы на выходе её не было. Спасибо.

Всего записей: 56 | Зарегистр. 30-07-2004 | Отправлено: 23:51 10-04-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niktata
$str=preg_replace("/<img.*?>/i","",$str);
не проверял

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:55 10-04-2007
niktata



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Благодарю
А можно ли проверить, есть ли в данной строке изображение? Чтобы на выходе булев ответ получить.

Всего записей: 56 | Зарегистр. 30-07-2004 | Отправлено: 03:13 11-04-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niktata
www.php.net/ereg

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:25 11-04-2007
DmitryFedorov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
 
В UltraEdit раньше както методом тыка делал поиск в нескольких строках (не вводя символ абзаца (^p) в строке поиска), а теперь забыл.  
Ищет в одной строке. Может напомнишь. Все перерыл что мог. Ответа не нашел.
Помоги. А?
 

Всего записей: 1962 | Зарегистр. 19-03-2006 | Отправлено: 16:41 01-05-2007
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DmitryFedorov
Причем тут эта тема?
UltraEdit разбирайся.

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 18:26 01-05-2007
DmitryFedorov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Brodyaga
 
  Тема называется Регулярные Выражения. И хотя вы тут глубоко копаете, а я нет, но название темы от этого не меняется.  
  UltraEdit написал потому что мне в нем надо сделать. А какое регулярное выражение в поисковой строке редактора использовать - забыл напрочь.  
 Может проще подсказать? Не может быть чтоб не знали. Даже я когда-то знал.

Всего записей: 1962 | Зарегистр. 19-03-2006 | Отправлено: 20:31 01-05-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryFedorov

Цитата:
А какое регулярное выражение в поисковой строке редактора использовать - забыл напрочь.

бр.. тема называется Регулярные выражения в PHP.. при чем тут редактор?


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:45 01-05-2007
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DmitryFedorov
Хватит флеймить. Я говорю-я не знаю и прошу перейти в указанную мною тему. Там все укажут гораздо оперативнее.

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 20:53 01-05-2007
Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryFedorov
У меня такое подозрение что вас интересует синтаксис регулярных выражений? Что бы потом корректно задать строку в UltraEdit?
http://www.php.net/manual/ru/reference.pcre.pattern.modifiers.php
http://www.php.net/manual/ru/reference.pcre.pattern.syntax.php

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 04:56 02-05-2007
crimea360

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как обрезать адрес до домена, всё что идёт после расширения,  например: http://www.site.ru/partner.php?cat=45  а было просто http://www.site.ru/ ?

Всего записей: 29 | Зарегистр. 03-01-2007 | Отправлено: 12:21 10-05-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Регулярные выражения (RegExp, Regular, eregi, preg)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru