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



Участник


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


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




ander, см. демо https://regex101[dot]com/r/UbgAFb/1
Шаблон:
CODE (php):
скопировать код в буфер обмена
  1. <span[^>]+dir="ltr">([^<]+)</span>


-----
~ PHP-8 & REGEXP - This is a really powerful kit ~
****************************************
 
 Top
Vladimir Kheifets
Отправлено: 09 Марта, 2021 - 13:08:26
Post Id



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


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


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




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



Участник


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


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




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

ander, прочитайте один раз книгу "Регулярные выражения" Джеффри Фридла, и вопросы по регуляркам станут не актуальными.


-----
~ PHP-8 & REGEXP - This is a really powerful kit ~
****************************************
 
 Top
ander
Отправлено: 09 Марта, 2021 - 17:52:44
Post Id


Новичок


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


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB