Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регуляр!! регуляр!! 
:(
    Опции темы
нуп
Дата 10.5.2010, 16:51 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



В регулярках бот страшный. Надо вытащить всю таблицу начиная от <table class=maintable  до </table>, нужны только те таблицы где встречается символ "№".  class=maintable может написан либо в двойных кавычках, либо в одинарных, либо без кавычек . Вот мой ботокод подправьте плиз
Код

$reg = '|<table class=maintable+(№)+(.*)+</table>|Uis';

 smile 
PM MAIL   Вверх
SelenIT
Дата 11.5.2010, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



Код

$reg = '|<table [^>]*\bclass=(["\']?)maintable\\1[^>]*>(.*№.*)</table>|Uis';

В первом приближении как-то так, видимо.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
brother79
Дата 11.5.2010, 05:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: нет
Всего: 6



Цитата(SelenIT @  11.5.2010,  05:48 Найти цитируемый пост)
1:


В первом приближении как-то так, видимо.



А во втором так smile :


Код

$reg = '|<table [^>]*\bclass=(["\'])maintable\\1[^>]*>(.*?№.*?)</table>|Uis';




--------------------
PM MAIL WWW   Вверх
SelenIT
Дата 11.5.2010, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



brother79, сорри, не понял... зачем .*?, когда уже стоит U?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
нуп
Дата 11.5.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Что-то не работает
Код

<table class=maintable border=0 width=100% bgcolor=#D0D0D0 cellspacing=1 cellpadding=3 style='color:'>
<table class="maintable" border=0 width=100% bgcolor=#D0D0D0 cellspacing=1 cellpadding=3 style='color:'>
<table class='maintable' border=0 width=100% bgcolor=#D0D0D0 cellspacing=1 cellpadding=3 style='color:'>

Вот так может быть  smile

Добавлено через 6 минут и 44 секунды
["\']
Как добавить третий вариант,  на отсутствие символа?!
PM MAIL   Вверх
SelenIT
Дата 11.5.2010, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



В моем изначальном варианте он есть, в виде вопроса после скобки. И у меня локально (PHP5.3.2, Ubuntu) с этими примерами работает...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
нуп
Дата 11.5.2010, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Код

<table [^>]*\bclass=(["\'])|()maintable(.*?№.*?)<\/table>

Так работает, но как сделать чтобы находило только для одной таблицы, то есть идет такой код 
Код

<table class=maintable> .... </table>
<table class=maintable>№ </table>
<table class=maintable> .... </table>

мне надо, чтобы нашло только 1 таблицу
PM MAIL   Вверх
SelenIT
Дата 11.5.2010, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



Он и должен найти только вторую таблицу, с №...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
brother79
Дата 11.5.2010, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: нет
Всего: 6



Цитата(SelenIT @  11.5.2010,  13:16 Найти цитируемый пост)
brother79, сорри, не понял... зачем .*?, когда уже стоит U? 


Sory, просто не пользуюсь этим модификатором, вот и не обратил внимания smile



--------------------
PM MAIL WWW   Вверх
нуп
Дата 11.5.2010, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Ваш вариант работает, если есть кавычки. Что можно добавить, что парсило такое class=maintable 
PM MAIL   Вверх
SelenIT
Дата 11.5.2010, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



У меня (["\']?)maintable\\1 работает и с кавычками, и без (все примеры 6-ю постами выше). Правда, возможность пробелов до и после "=" не учитывается.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
нуп
Дата 11.5.2010, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Просто мне выдает весь результат, там 3 таблицы. Использую preg_match_all. А как выводить только то, что у меня в регулярке
PM MAIL   Вверх
SelenIT
Дата 11.5.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



Возможно, где-то лишний преобразователь жадности остался. Должен быть только один - либо ? после .* внутри таблицы, либо модификатор U в конце (как в моем примере).


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
нуп
Дата 11.5.2010, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Спасибо всем. Нашел плагин под фф Regular expression tester, очень удобная штука.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0885 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.