Сейчас на форуме: Kybyx, user99 (+3 невидимых)

 eXeL@B —› Оффтоп —› помогите с регэкспами
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 23 ноября 2010 16:10
· Личное сообщение · #1


Code:
  1. <div style="padding: 3px"><b>Матчи с участием команды Бостон:</b></div><table cellspacing="0" cellpadding="3"><tr><td class="tha" width="65">Дата</td>
  2.  
  3.                               <td class="tha" width="100">Хозяева</td>
  4.                               <td class="tha" width="100">Гости</td>
  5.                               <td class="tha" width="50">Счет</td>
  6.                               <td class="tha" width="100">Комментарий</td>
  7.                                        </tr>
  8.                  <tr class=bcc><td>23.11.2010</td><td><a href="/stats.php?a=tt&tid=637&p=3:13:30383159">Атланта</a></td><td><b>Бостон</b></td><td class="co1">76:99</td><td></td></tr><tr class=bcc><td>21.11.2010</td><td><a href="/stats.php?a=tt&tid=632&p=3:13:30383159">Торонто</a></td><td><b>Бостон</b></td><td class="co2">102:101</td><td></td></tr><tr class=bcc><td>20.11.2010</td><td><b>Бостон</b></td><td><a href="/stats.php?a=tt&tid=627&p=3:13:30383159">Оклахома</a></td><td class="co2">84:89</td><td></td></tr><tr class=bcc><td>18.11.2010</td><td><b>Бостон</b></td><td><a href="/stats.php?a=tt&tid=635&p=3:13:30383159">Вашингтон</a></td><td class="co1">114:83</td><td></td></tr><tr class=bcc><td>14.11.2010</td><td><a href="/stats.php?a=tt&tid=642&p=3:13:30383159">Мемфис</a></td><td><b>Бостон</b></td><td class="co1">110:116</td><td></td></tr><tr class=bcc><td>12.11.2010</td><td><a href="/stats.php?a=tt&tid=636&p=3:13:30383159">Майами</a></td><td><b>Бостон</b></td><td class="co1">107:112</td><td></td></tr><tr class=bcc><td>09.11.2010</td><td><a href="/stats.php?a=tt&tid=621&p=3:13:30383159">Даллас</a></td><td><b>Бостон</b></td><td class="co2">89:87</td><td></td></tr><tr class=bcc><td>08.11.2010</td><td><a href="/stats.php?a=tt&tid=627&p=3:13:30383159">Оклахома</a></td><td><b>Бостон</b></td><td class="co1">83:92</td><td></td></tr><tr class=bcc><td>06.11.2010</td><td><b>Бостон</b></td><td><a href="/stats.php?a=tt&tid=644&p=3:13:30383159">Чикаго</a></td><td class="co1">110:105</td><td></td></tr><tr class=bcc><td>04.11.2010</td><td><b>Бостон</b></td><td><a href="/stats.php?a=tt&tid=633&p=3:13:30383159">Милуоки</a></td><td class="co1">105:102</td><td>(ОТ)</td></tr><tr class=bcc><td>03.11.2010</td><td><a href="/stats.php?a=tt&tid=660&p=3:13:30383159">Детройт</a></td><td><b>Бостон</b></td><td class="co1">86:109</td><td></td></tr><tr class=bcc><td>30.10.2010</td><td><b>Бостон</b></td><td><a href="/stats.php?a=tt&tid=638&p=3:13:30383159">Нью-Йорк</a></td><td class="co1">105:101</td><td></td></tr><tr class=bcc><td>28.10.2010</td><td><a href="/stats.php?a=tt&tid=639&p=3:13:30383159">Кливленд</a></td><td><b>Бостон</b></td><td class="co2">95:87</td><td></td></tr><tr class=bcc><td>27.10.2010</td><td><b>Бостон</b></td><td><a href="/stats.php?a=tt&tid=636&p=3:13:30383159">Майами</a></td><td class="co1">88:80</td><td></td></tr>                 </table>
  9.  
  10.                  </td></tr></table>


Как выдернуть из html все строки типа:
04.11.2010 Бостон Милуоки 105:102 (ОТ)
??




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 марта 2011 15:35
· Личное сообщение · #2

не пашет =(
Вот у мну был какой регэксп, добавил только -\s
(\d{2}\.\d{2}\.\d{4}).+?([-а-яА-Я-\s]+).+?([-а-яА-Я-\s]+).+?(\d+?:\d+?)<\/td><td>(.*?)<
первую команду вообще теперь пропускает

Изначальный регэксп:
(\d{2}\.\d{2}\.\d{4}).+?([-а-яА-Я]+).+?([-а-яА-Я]+).+?(\d+?:\d+?)<\/td><td>(.*?)<
Выдает такую штуку (тильду уже я вставил)
23.02.2011~Голден~Стэйт~93:115~

А должен типа
23.02.2011~Голден Стэйт~Бостон~93:115~




Ранг: 107.3 (ветеран), 5thx
Активность: 0.20.04
Статус: Участник

Создано: 08 марта 2011 18:14
· Личное сообщение · #3

а! ну дык у тебя регэкспа а-яА-Я, тебе тут как бэ ещё пробел нужен. попробуй вместо -\s написать \x20




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 марта 2011 18:49
· Личное сообщение · #4

не пашет =(



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 09 марта 2011 04:53 · Поправил: Zorn
· Личное сообщение · #5

Пробел в класс нельзя добавлять, т.к. он встречается раньше русских символов.
Как вариант взять более длинную регулярку. Одну из тех что тут предлагались.

Ну или вот так
(\d{2}\.\d{2}\.\d{4}).+?\s.+?([-а-яА-Я\s]+).+?([-а-яА-Я\s]+).+?(\d+?:\d+?)<\/td><td>(.*?)<




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 28 ноября 2012 20:39
· Личное сообщение · #6

Помогите еще плз =)
В аттаче файл. Помогите оттуда дернуть инфу вида (по порядку из файла) и разложить на строки:
Футбол. NextGen Series (до 19 лет).~28.11.2012~21:00~Вольфсбург (19)~-1~2.20~Андерлехт (19)~+1~1.67~1.70~3.70~4.64~1.19~1.28~2.15~2.5~2.59~1.50. Это одна строка. Далее следующее событие. и так далее по тексту
Т.е. нужны только заголовок, дата, время и значения, которые в таблички вбиты. Остальной хлам по этому событию не нужен.

ea30_28.11.2012_EXELAB.rU.tgz - lines_download.rar



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 29 ноября 2012 09:48 · Поправил: Zorn
· Личное сообщение · #7

Одной регуляркой тут судя по всему не обойдешся.
Если я правильно понял нужно запоминать все события ?
ВРЕМЯ КОМАНДА 1 ФОРА КФ КОМАНДА 2 ФОРА КФ 1 X 2 1X 12 X2 ТОТАЛ МЕН БОЛ




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 29 ноября 2012 10:04
· Личное сообщение · #8

Zorn пишет:
Если я правильно понял нужно запоминать все события ?

Да, всё верно. Только еще чемпионат и дату, они могут быть общими для нескольких событий.



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 30 ноября 2012 10:34 · Поправил: Zorn
· Личное сообщение · #9

Ну тогда писать парсер.
Неопределенное количество групп регекспом запомнить нельзя.
Грубо говоря сколько пар скобок, столько и будет запомнено.

А тут у нас 2 группы (чемпионат и дата), столбцы события (хотя можно забубенить 16 групп ) и неопределенное кол-во повторений событий.


Либо я ламер и не умею в регекспы

Можно еще попробовать вырезать ненужную часть с помощью preg_replace и получится та же ХТМЛина с нужной инфой.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 30 ноября 2012 14:33
· Личное сообщение · #10

Решение в лоб, построить дерево по XPath и уже регуляркой выбрать нужное или распарсить xml.


<< . 1 . 2 .
 eXeL@B —› Оффтоп —› помогите с регэкспами

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати