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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Cheery



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

Цитата:
Не нашел как они обозначаются.

\t

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:33 14-04-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Гугл молчит, яндекс тоже. Как убрать повторяющиеся табы?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 10:41 15-04-2010
Delta RuBoard



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
тебе же Cheery написал уже для пробелов

Цитата:
preg_replace('/\s+/',' ',$postEditor)

 
вместо \s ставь \t

----------
мой маленький блог
Создание on-line игр

Всего записей: 382 | Зарегистр. 21-06-2005 | Отправлено: 15:51 15-04-2010
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Rendom
preg_replace('~<table.*?UNIQTEXT.*?</table>~', '', $s);
 
ыы, ступил )

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 15:28 16-04-2010 | Исправлено: Mamay, 15:32 16-04-2010
Delta RuBoard



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mamay
вначале думал что оно будет вырезать абсолютно все %) обьясни плиз принцип по которому твоя регулярка выбирает именно нужный кусок кода, а не например  
 

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


----------
мой маленький блог
Создание on-line игр

Всего записей: 382 | Зарегистр. 21-06-2005 | Отправлено: 05:45 21-04-2010
Cheery



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

Цитата:
обьясни плиз принцип по которому твоя регулярка выбирает именно нужный кусок кода, а не например  


Цитата:
.*?

? - модификатор "жадности"
аналогично можно написать /регулярка с */U  - "ungreedy"

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:32 21-04-2010
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Delta RuBoard
жадность это наше всё )
и такие куски кода следует вырезать именно таким способом
потому как мы получаем наименьшее число сравнений

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 13:27 21-04-2010
DarkSmoke



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

Код:
$buff = ereg_replace('{TITLE}', $title, $buff);

переделать для preg_match.
 
Добавлено:
А то обновили пхп до 5.3 и капец.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 13:59 27-04-2010
andead



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

Код:
$buff = str_replace('{TITLE}', $title, $buff);


----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 14:11 27-04-2010
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
тут вот написал одну регу, может кому пригодится
задача была заменить парные &lt; &gt; на <>
именно парные, потому html_entity_decode не подходил...
собственно сама рега
 

Код:
$s = '&gt;&lt;&lt;input type="text" name="test" value="8"&gt;&lt;&gt;
&gt;&lt;&lt;input type="text" name="test" value="8"&gt;&lt;&gt;
&gt;&lt;&lt;input type="text" name="test" value="8"&gt;&lt;&gt;  
';
 
echo preg_replace('~(&lt;)([^&]+)(&gt;)~isu','<$2>',$s);

 
результат

Цитата:
&gt;&lt;<input type="text" name="test" value="8">&lt;&gt;
&gt;&lt;<input type="text" name="test" value="8">&lt;&gt;
&gt;&lt;<input type="text" name="test" value="8">&lt;&gt;


----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 18:51 30-04-2010 | Исправлено: Mamay, 18:53 30-04-2010
softsp1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте,
 
подскажите пожалуйста
 
например есть html-страница вида http://www.ex.ua/view/1253181?r=2,23775
 
на этой странице есть такой код

Цитата:
 
        playlist: [
            { url: 'http://fs70.www.ex.ua/show/2288131/2288131.gif?800', duration: 0 }, { url: 'http://www.ex.ua/show/2297639/aeea23dd2a1de31e7f61640615da67b8.flv', autoPlay: false }
        ],
 
 

 
нужно спарсить(получить) с этой страницы, ссылку на .flv файл (т.е. http://www.ex.ua/show/2297639/aeea23dd2a1de31e7f61640615da67b8.flv)
 
Огромное спасибо за полезные ответы

Всего записей: 6 | Зарегистр. 14-05-2008 | Отправлено: 05:05 11-05-2010
AftarJjet



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не PHP, но думаю, мне быстрей всего ответят тут. Помогите выполнить поиск и замену.
Есть различные строки,  такого вида и такого.
В каждой строке есть константа - $H$, а также расположение символов '.
Мне необходимо строки выше привести в такой вид раз и два, или хотя бы пусть так (т.е. убрать все символы в строке до константы $H$.

Всего записей: 1829 | Зарегистр. 11-01-2009 | Отправлено: 15:17 14-05-2010
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
softsp1
preg_match('~http://[^:]*?\.flv~is',$str,$match);
AftarJjet
preg_replace('~^(.*)(\$H.*)~','\'$2',$str);
 
Добавлено:
AftarJjet
даже так
preg_replace('~^(([^,]*),){7}(.*)~','$3',$str);

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 19:15 14-05-2010
kvazigorynich

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

Всего записей: 794 | Зарегистр. 06-09-2007 | Отправлено: 20:41 21-05-2010 | Исправлено: kvazigorynich, 20:09 22-05-2010
muk as

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
из значения вида 5_6_2010_21_56_50
выдрать все цифры(перед и\или после знака "_") и каждую поместить в отдельную переменную
т.е.
$a = 5
$b=6
$c=2010
$d=21
$e=56
$f=50

Всего записей: 443 | Зарегистр. 30-10-2009 | Отправлено: 15:52 26-05-2010
andead



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

Код:
explode('_', '5_6_2010_21_56_50')


----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 16:06 26-05-2010
neznayka3

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

Код:
$pattern='#<span class=\"Test\" id=\"Test\">.*<\/span>#is';
echo $pattern;

получаю
Код:
#.*<\/span>#is
куда пропала левая часть?

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 22:31 29-05-2010 | Исправлено: neznayka3, 22:31 29-05-2010
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
neznayka3
посмотрите исходный код страницы

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 22:37 29-05-2010
neznayka3

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

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 22:44 29-05-2010 | Исправлено: neznayka3, 22:45 29-05-2010
Cheery



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

Цитата:
В исходном коде все верно.

ну и? сказали же - страница распознается как HTML поэтому первый тег <span ..> вывелся именно как HTML тег. В коде страницы же нормально показывается? хотите, чтобы виден был и в отображении html страницы, то напишите  
echo htmlentities($pattern);

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:54 29-05-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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