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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volod3000
Вместо \w применить a-zа-я некатит?

Всего записей: 11 | Зарегистр. 02-12-2008 | Отправлено: 23:17 10-10-2010
volod3000



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
den1x .
 
Такое я уже пробовал, не прокатило, функция странная .
Как я понимаю ,
Первый фильтр делит выражение (Слово|Адрес) . А второй  
ищет это слово в тексте и делает это слово ссылкой.  
С  латинскими буквами всё хорошо, а вот  
 кириллицу игнорирует.

Всего записей: 134 | Зарегистр. 03-04-2007 | Отправлено: 11:31 11-10-2010
den1x

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volod3000
Походу не поленился и наинсталлировал - все работает. Проблема кроется в настройках сервера (отсутствует поддержка utf-8 ?).

Всего записей: 11 | Зарегистр. 02-12-2008 | Отправлено: 06:07 12-10-2010 | Исправлено: den1x, 06:11 12-10-2010
volod3000



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
den1x . .
На счет сервера согласен, но видимо не поддержка utf8 (она есть), что-то другое.
По ходу , на Денвере у меня тоже работает.

Всего записей: 134 | Зарегистр. 03-04-2007 | Отправлено: 07:58 12-10-2010
GenezZ



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хоть и говорят что регулярка это просто, но вот я туплю.
Помогите пожалуйста.
 
Есть строка. Она составляется из блоков вида ':integer:'
Например $string=':12::17::34:';
Как вытащить эти цыфры?
Причем строка может и быть совсем пустой, или из одного значения, или ХЗ сколько значений. Цыфры нужны в массиве.
$array(12,17,34);
Спасибо!
 
Добавлено:
Отбой. Разобрался. /[0-9]{1,}/

Всего записей: 364 | Зарегистр. 19-07-2001 | Отправлено: 11:07 09-11-2010
holden321

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в javascript нужно вырезать из строки всё кроме того что нужно
допустим из "one two three" получить "two" (т.е. слово "two" как раз нужное)
не могу понять как сделать отрицание (с помощью набора [^ ] можно исключить только отдельные символы, а как целые слова непонятно)

Всего записей: 148 | Зарегистр. 04-03-2009 | Отправлено: 18:44 19-11-2010
ckjet

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня такой вопрос, мне нужно вырезать из кода
 
<a href="/whois?tld=ru&amp;domain=10-DEL.RU" title="Посмотреть WHOIS этого домена" onclick="return show_progress()">10-DEL.RU</a>
 
вырезать 10-DEL.RU.  
 
Как это сделать?  
 
пытался таким образом:  
 
preg_match_all('|onclick="return show_progress()">(.*?)<\/a>|mi',$content,$dmn);
 
и так:  
 
preg_match_all('|<a href="/whois?tld=ru&amp;domain=(.*)" title="Посмотреть WHOIS этого домена"|mi',$content,$dmn);
 
Добавлено:
я надеюсь вы объясните как брать именно return show_progress()">(.*?)<\/a> этот эллемент что заключен в тег a

Всего записей: 1 | Зарегистр. 23-11-2010 | Отправлено: 15:40 23-11-2010
kivan



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

Код:
preg_match_all('%<a[^>]*>(.*?)</a>%si', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[1];
print_r($result);
 



----------
There are 10 kinds of people in the World...
Those who understand binary, and those who dont!

Всего записей: 341 | Зарегистр. 23-11-2004 | Отправлено: 16:04 24-11-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
holden321
javascript регулярные выражения

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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плиз
  есть регулярное выражение
  $regexp_allowed_characters = "[A-ZА-ЯёЁІіЎўҐґЇї0-9:;.,!?%'\/\|\"\(\) _=\&#№+-]";
 
С русскими буквами проблема. С заглавными нормально, маленькие буквы == т, х,ш,щ == не обрабатываются.

Всего записей: 72 | Зарегистр. 17-01-2007 | Отправлено: 16:50 11-12-2010
modwind



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
stroibat, зависит от кодировки текста. Если UTF-8, используется ли в регулярном выражении модификатор /u?
 
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

Всего записей: 20 | Зарегистр. 05-12-2010 | Отправлено: 20:54 11-12-2010
SamuraiDV



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Пытаюсь разобраться с одной вещью и никак не выходит))
 
Вот код:
 
$homepage = file_get_contents('http://www.site.org/index.php');
preg_match('%<meta.*name="keywords".*content="(.*)"\s+/>%', $homepage, $regs);
echo $regs[1];  
 
В переменную $homepage попадает все как надо, много кода, но вот дальше найти строчку  
 
<meta name='keywords' content='bla, bla, bla' />";
 
и вывести все значения bla, bla, bla не получается.
 
Помогите пожалуйста!

Всего записей: 22 | Зарегистр. 14-01-2009 | Отправлено: 22:45 20-12-2010
Cheery



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

Цитата:
%<meta.*name="keywords".*content="(.*)"\s+/>%U

 
плюс точнее с кавычками.. если там одинарные, а не двойные - тоже не сработает..  
когда не уверены можно делать и так
вместо " писать ("|')
с правильным экранированием, конечно же.

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:50 20-12-2010 | Исправлено: Cheery, 22:51 20-12-2010
SamuraiDV



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Огромнейшее спасибо, работает!
 
Но не могли бы вы подсказать, как будет выглядеть код с правильным экранированием?

Всего записей: 22 | Зарегистр. 14-01-2009 | Отправлено: 23:03 20-12-2010
Cheery



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

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

экронирование я упомянул чтобы не было проблем с открывающими кавычками регулярного выражения, если не используете оба типа кавычек сразу
Цитата:
("|')  
то оно и не нужно.
 


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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:07 20-12-2010
SamuraiDV



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

Всего записей: 22 | Зарегистр. 14-01-2009 | Отправлено: 23:33 20-12-2010 | Исправлено: SamuraiDV, 23:37 20-12-2010
NecT1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В зависимости от обстоятельств генерируется следующая строка html-кода:
 

Код:
<h4 id="city">Название города</h4>

или

Код:
<h4 id="city"><b class="megapolis">Мегаполис</b>Название города</h4>

 
Как извлечить Название города ?

Всего записей: 8 | Зарегистр. 18-11-2005 | Отправлено: 14:02 03-01-2011
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
~>([^<]*)</h4>~

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

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 16:48 03-01-2011
Canonier



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, помогите, пожалуйста!
Есть у нас штука, которая фильтрует информацию по вхождению! ) Работает по стандарту POSIX, задаются регулярные выражения! Но не php и не Perl
Задача такова: нужно написать регулярное выражение, которое будет реагировать на слово "хер", но не будет реагировать на слова "похерить", "парикмахер" и "херомантия"
Как мне это реализовать на POSIX?
Спасибо!

Всего записей: 142 | Зарегистр. 11-07-2007 | Отправлено: 18:59 18-01-2011
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
\sхер\s
на самом деле пхпшный PCRE не очень отличается от POSIX
http://ua2.php.net/manual/en/reference.pcre.pattern.posix.php
 
Добавлено:
как начальное и конечное условие можно поставить [^а-я]*
но я не уверен

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

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 18:04 25-01-2011
Открыть новую тему     Написать ответ в эту тему

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