Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Горе регулярка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Сложности с составлением правила фильтрации
Feel1986
Отправлено: 19 Марта, 2019 - 16:14:27
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2019  


Помог: 0 раз(а)




Добрый всем)
Застрял на задаче фильтрации текста

Имею
CODE (html):
скопировать код в буфер обмена
  1. <td>Будь первым и GAMEMENU от 15р</td>
  2. <td>Наилучший эффект, первая позиция в мастерсервере</td>
  3. <td class="text-center">0 из 1</td>
  4. <td class="text-center">    20.03.2019 [08:44] </td>


Хочу разбить на массив всего содержимого что в <td>

PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<td(.+)\>(.+?)\<\/td\>/isu', $text, $filtered);


Не понимаю где ошибаюсь, беру начало с <td в котором может быть какой-то текст еще, ограничиваю его первым закрытием > далее беру весь текст внутри и обрезаю его первым </td>
Подозреваю что где-то надо еще указать начало и конец строки чтоли... Помогите кто понимает)
 
 Top
teleoperator27
Отправлено: 19 Марта, 2019 - 16:38:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




PHP:
скопировать код в буфер обмена
  1. $str = '<td>Будь первым и GAMEMENU от 15р</td>
  2. <td>Наилучший эффект, первая позиция в мастерсервере</td>
  3. <td class="text-center">0 из 1</td>
  4. <td class="text-center">    20.03.2019 [08:44] </td>';
  5.  
  6. preg_match_all('~<td(.*)>(.*)</td>~iu',$str, $matches);
  7.  
  8. echo '<pre>';
  9. print_r($matches[2]);
  10. echo '</pre>';
  11.  
 
My status
 Top
Строитель Модератор
Отправлено: 19 Марта, 2019 - 16:52:47
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Спойлер (Отобразить)
 
 Top
Feel1986
Отправлено: 19 Марта, 2019 - 19:14:28
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2019  


Помог: 0 раз(а)




Спасибо, идеально прям)
Как-то регулярка сложно дается (
 
 Top
Строитель Модератор
Отправлено: 20 Марта, 2019 - 08:22:05
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Feel1986 пишет:
Спасибо, идеально прям)
Как-то регулярка сложно дается (
Читайте хорошую литературу, и тогда всё получится )
 
 Top
Feel1986
Отправлено: 20 Марта, 2019 - 19:28:43
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2019  


Помог: 0 раз(а)




Строитель пишет:
Feel1986 пишет:
Спасибо, идеально прям)
Как-то регулярка сложно дается (
Читайте хорошую литературу, и тогда всё получится )

та и вики читал, и еще на пачке сайтов, как-то нигде мне это не помогает ) Огрызки понятно, но в целом муть )
 
 Top
Строитель Модератор
Отправлено: 20 Марта, 2019 - 20:17:44
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Feel1986, мне попадался не плохой мануал по регуляркам на оф.сайте JavaScript, а так же на киберфоруме в разделе PHP RegExp:
http://www[dot]cyberforum[dot]ru/php-reg[dot][dot][dot]hread631382[dot]html

Но для полноты понимания лучше почитайте книгу Джеффри Фридла "Регулярные выражения".
 
 Top
Feel1986
Отправлено: 23 Марта, 2019 - 07:14:50
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2019  


Помог: 0 раз(а)




Спасибо за консультацию, буду читать на досуге.

А вот еще столкнулся проблемкой

Есть у меня массив с IP адресами (игровые сервера)
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => 37.231.228.124:27015
  3.     [1] => 81.118.13.200:27019
  4.     [2] => 81.118.13.200:27015
  5.     [3] => 91.212.117.30:27015
  6.     [4] => 192.19.111.68:27030
  7. )


есть страница на которой все разбито на таблицу. (<tr>...</tr>)

Как получить <tr> </tr> в которох есть эти айпишки?

я примерно мыслю вот так
\<tr\>(.*)37\.230\.228\.108\:27015(.*)\<\/tr\> не тестил еще, но чёт меня оно смущает, чего-то не хватает кажется)

(Отредактировано автором: 23 Марта, 2019 - 07:18:26)

 
 Top
Строитель Модератор
Отправлено: 23 Марта, 2019 - 14:36:40
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Feel1986, я честно говоря не понял связи между массивом, и таблицей. Если нужно найти айпишники в таблице, то шаблон будет выглядеть так: ~<td[^>]*>((?:\d{1,3}\.){3}\d{1,3}:\d+)</td>~

Если такой шаблон не даёт соответствий, можно попробовать так: ~<td[^>]*>.*?((?:\d{1,3}\.){3}\d{1,3}:\d+).*?</td>~

А вообще обычно приводят пример строки, в которой необходимо произвести поиск значений.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB