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]   

> Описание: Нужно составить регулярное выражение, чтобы вытащить строку из текста
ander
Отправлено: 09 Марта, 2021 - 06:58:17
Post Id


Новичок


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


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




Здравствуйте.
Потребовалось вытащить текст из страницы котировок:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <div class="top bold inlineblock">
  2.    <span class="arial_26 inlineblock pid-8222-last" id="last_last" dir="ltr">123,81</span>
  3.      <span class="arial_20 greenFont   pid-8222-pc" dir="ltr">+0,40</span>
  4.       <span dir="rtl">&nbsp;&nbsp;</span>
  5.     <span class="arial_20 greenFont  pid-8222-pcp parentheses" dir="ltr">+0,32%</span>
  6. </div>


вытащить нужно два значения а именно - 123,81
и еще +0,32%

Пытался делать регуляркой, паттерном вида:
!<div class=\"top bold.+<span.+dir=\"ltr\">(.+?)</span>.+</div>?!siu

Но ничего не нашел, в общем сильно не пинайте, в регулярках не очень разбираюсь, хоть и время от времени сталкиваюсь. Помогите пж! Растерялся

(Отредактировано автором: 09 Марта, 2021 - 07:00:08)

 
 Top
Строитель Модератор
Отправлено: 09 Марта, 2021 - 13:02:35
Post Id



Участник


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


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




ander, см. демо https://regex101[dot]com/r/UbgAFb/1
Шаблон:
CODE (php):
скопировать код в буфер обмена
  1. <span[^>]+dir="ltr">([^<]+)</span>
 
 Top
Vladimir Kheifets
Отправлено: 09 Марта, 2021 - 13:08:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




ander пишет:
Здравствуйте.
Потребовалось вытащить текст из страницы котировок:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <div class="top bold inlineblock">
  2.    <span class="arial_26 inlineblock pid-8222-last" id="last_last" dir="ltr">123,81</span>
  3.      <span class="arial_20 greenFont   pid-8222-pc" dir="ltr">+0,40</span>
  4.       <span dir="rtl">&nbsp;&nbsp;</span>
  5.     <span class="arial_20 greenFont  pid-8222-pcp parentheses" dir="ltr">+0,32%</span>
  6. </div>

вытащить нужно два значения а именно - 123,81
и еще +0,32%

Добрый день!
Если Вы в регулярках не очень разбираетесь, попробуйте таких случаях
применять простенькую функцию
Спойлер (Отобразить)
Удачи!
 
 Top
Строитель Модератор
Отправлено: 09 Марта, 2021 - 13:12:38
Post Id



Участник


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


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




Vladimir Kheifets пишет:
Если Вы в регулярках не очень разбираетесь
То самое время начинать Закатив глазки

ander, прочитайте один раз книгу "Регулярные выражения" Джеффри Фридла, и вопросы по регуляркам станут не актуальными.
 
 Top
ander
Отправлено: 09 Марта, 2021 - 17:52:44
Post Id


Новичок


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


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




Спасибо всем кто ответил, буду пробовать!
 
 Top
Invis1ble
Отправлено: 09 Июля, 2021 - 20:46:12
Post Id


Новичок


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


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




Я бы в принципе не рекомендовал парсить html с помощью регулярок, в php есть штатные средства для работы с XML.
На худой конец можно взять тот же simplehtmldom.
 
 Top
don.bidon
Отправлено: 10 Июля, 2021 - 16:47:18
Post Id


Гость


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


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




Invis1ble пишет:
Я бы в принципе не рекомендовал парсить html с помощью регулярок, в php есть штатные средства для работы с XML.
На худой конец можно взять тот же simplehtmldom.

Вот только HTML может быть не валидным XML, и весь парс накроется тазиком (
 
 Top
Invis1ble
Отправлено: 11 Июля, 2021 - 00:50:30
Post Id


Новичок


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


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




don.bidon пишет:
Invis1ble пишет:
Я бы в принципе не рекомендовал парсить html с помощью регулярок, в php есть штатные средства для работы с XML.
На худой конец можно взять тот же simplehtmldom.

Вот только HTML может быть не валидным XML, и весь парс накроется тазиком (

Как раз для случая невалидного XML я и написал про simplehtmldom.
 
 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