|
|
|
регулярки. помогите распарсить.
|
|||
|---|---|---|---|
|
#18+
есть строка автор<td>Приём</td><td>11.07.2012 00:00</td><td>350033</td><td>КРАСНОДАР 33</td><td>Единичный</td><td>0,295</td><td>1470</td><td>1470</td><td>432044</td><td>УЛЬЯНОВСК, УЛЬЯНОВСКАЯ ОБЛАСТЬ</td></tr><tr align="center"><td>Обработка</td><td>12.07.2012 00:00</td><td>350964</td><td>КРАСНОДАР МСЦ ЦОСП</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 00:00</td><td>432099</td><td>УЛЬЯНОВСК ПОЧТАМТ</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 07:53</td><td>432044</td><td>УЛЬЯНОВСК 44</td><td>Прибыло в место вручения</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Вручение</td><td>18.07.2012 00:00</td><td><a href=javascript:Wind(41965)>432044</td><td>УЛЬЯНОВСК 44</td><td>Вручение адресату</td><td>0,295</td><td>1470</td><td>0</td><td></td><td></td></tr></tbody></table></div><br clear="all" /><div align="right"><a href="#top" class="lnk_ontop">наверх</a></div><div align="left"><a href="javascript:SetPrintable()" class="lnk_print">Версия для печати</a></div></div></td></tr></table></form></body></html> оригинал тут http://www.russianpost.ru/resp_e...uslug/trackingpo номер отправления 35003348084103 мне нужно как-то последнюю строку из таблицы выдергивать т.е. то что идёт после слов Приём или Обработка или Вручение (?<=Приём</td><td>|Обработка</td><td>|Вручение</td><td>) и непосредственно перед (?=Версия для печати) хелп!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2012, 20:19:02 |
|
||
|
регулярки. помогите распарсить.
|
|||
|---|---|---|---|
|
#18+
не правильно выразился... не "выдернуть", а "мне нужна последняя строка"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2012, 20:52:03 |
|
||
|
регулярки. помогите распарсить.
|
|||
|---|---|---|---|
|
#18+
kkv79, наверно как то так: Код: php 1. Или вместо ".+" явно перечислить ячейки, чтоб дополнительно не срезать html-теги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2012, 23:27:11 |
|
||
|
регулярки. помогите распарсить.
|
|||
|---|---|---|---|
|
#18+
не, всё не то.... давайте последовательно... 1. как из строки выдернуть последнюю дату "18.07.2012 00:00" ??? дате соответствует выражение \d\d.\d\d.\d{4}\s\d\d:\d\d но при этом выдернется первая дата, т.е. "12.07.2012 00:00" чтоб выдернуть последнюю дату, нужно составить регулярку чтоб было так: сперва идёт дата "\d\d.\d\d.\d{4}\s\d\d:\d\d", после идёт любое количество символов ".*" а затем даты быть не должно а как это выразить "а затем даты быть не должно", я чёт не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 01:33:51 |
|
||
|
регулярки. помогите распарсить.
|
|||
|---|---|---|---|
|
#18+
kkv79, Ну вот, задание в корне изменилось. Оказывается, не все, а только даты? Думаю, нет смысла заморачиваться на датах. Давайте по порядку. Вам нужна последняя строка. Значит, будет закрывающий тег строки и следом будет конец таблицы "</tr></tbody></table>". С этим вроде как понятно. Начало строки - последний тег <tr align="center">. Модификатор U сделает регексп не жадным, потому будет выбран именно последний открывающий тег. Далее требуется достать данные из ячеек таблицы. Каждая ячейка представляет собой пару тегов <td> и </td>, между которыми может быть что-то, а может и не быть. Просто. Тут шаблон "<td>(.*)</td>" по кол-ву ячеек в строке. Первую ячейку Вы хотите ограничить правилом "(Приём|Обработка|Вручение)", как понимаю. Я б не стал ограничивать, скорее всего. Думаю, так проще обработать ситуации экспорта/импорта/таможни в последней строке. Впрочем, тут Вам виднее по задаче - выбирать любое значение, или только прием/обработку/вручение. Однако, не совсем ясно тогда становится, если будет первой строкой прием, второй - экспорт, третьей - импорт, а последней, четвертой - таможня... тогда что выбирать? Или международные отправления не входят в задачу? Итак, не заморачиваясь на содержимом ячеек, получается примерно так Код: php 1. Усе. Берем нужные элементы массива и их используем. Если какие-то элементы не нужны в принципе - просто убираем скобки, тогда массив сократится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 02:02:01 |
|
||
|
регулярки. помогите распарсить.
|
|||
|---|---|---|---|
|
#18+
идею понял.... сделал так Код: php 1. 2. 3. получилось не совсем то что нужно... авторarray(11) { [0]=> string(1024) "<tr align="center"><td>Приём</td><td>11.07.2012 00:00</td><td>350033</td><td>КРАСНОДАР 33</td><td>Единичный</td><td>0,295</td><td>1470</td><td>1470</td><td>432044</td><td>УЛЬЯНОВСК, УЛЬЯНОВСКАЯ ОБЛАСТЬ</td></tr><tr align="center"><td>Обработка</td><td>12.07.2012 00:00</td><td>350964</td><td>КРАСНОДАР МСЦ ЦОСП</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 00:00</td><td>432099</td><td>УЛЬЯНОВСК ПОЧТАМТ</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 07:53</td><td>432044</td><td>УЛЬЯНОВСК 44</td><td>Прибыло в место вручения</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Вручение</td><td>18.07.2012 00:00</td><td><a href=javascript:Wind(41965)>432044</td><td>УЛЬЯНОВСК 44</td><td>Вручение адресату</td><td>0,295</td><td>1470</td><td>0</td><td></td><td></td></tr></tbody></table>" [1]=> string(5) "Приём" [2]=> string(16) "11.07.2012 00:00" [3]=> string(6) "350033" [4]=> string(12) "КРАСНОДАР 33" [5]=> string(9) "Единичный" [6]=> string(5) "0,295" [7]=> string(4) "1470" [8]=> string(4) "1470" [9]=> string(6) "432044" [10]=> string(827) "УЛЬЯНОВСК, УЛЬЯНОВСКАЯ ОБЛАСТЬ</td></tr><tr align="center"><td>Обработка</td><td>12.07.2012 00:00</td><td>350964</td><td>КРАСНОДАР МСЦ ЦОСП</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 00:00</td><td>432099</td><td>УЛЬЯНОВСК ПОЧТАМТ</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 07:53</td><td>432044</td><td>УЛЬЯНОВСК 44</td><td>Прибыло в место вручения</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Вручение</td><td>18.07.2012 00:00</td><td><a href=javascript:Wind(41965)>432044</td><td>УЛЬЯНОВСК 44</td><td>Вручение адресату</td><td>0,295</td><td>1470</td><td>0</td><td></td><td>" } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 02:47:33 |
|
||
|
регулярки. помогите распарсить.
|
|||
|---|---|---|---|
|
#18+
а если так, без модификатора U Код: php 1. 2. 3. то получил что нужно во 2, 4, и 5 элементах массива, но имхо всё равно не правильно.... много лишнего в первом элементе поправте плиз... автор<br>array(11) { [0]=> string(2683) "<td><input type="text" id="BarCode" name="BarCode" size="14" maxlength="14" value="35003348084103"></input></td></tr><tr><td /><td><DIV id="lblBrcdErrMsg" style="COLOR: red; DISPLAY: inline; WIDTH: 50%; HEIGHT: 15px" ms_positioning="FlowLayout" /></td></tr></table><p><input type="hidden" id="searchsign" name="searchsign" /></p><input type="hidden" id="entryBarCode" name="entryBarCode" size="14" maxlength="14" value=""></input><p><input type="button" name="searchbarcode" onclick="CheckInputCode();" value="Найти"></input></p><h2>Результат поиска:</h2><table border="0" cellspacing="4" cellpadding="0"><tr valign="top"><th align="left">Внутрироссийский <br />почтовый идентификатор:</th><td><br />35003348084103</td></tr><tr valign="top"><th align="left"><p style="margin-top:10px">Принято к пересылке:</p></th><td><div style="margin-top:10px">КРАСНОДАР, КРАСНОДАРСКИЙ КРАЙ</div><div>Бандероль 1 класса с объявл. ценностью и налож. платежом</div><div>Без разряда</div><div> Без отметки</div></td></tr><tr valign="top"><th align="left"><div style="margin-top:10px">Отправитель:</div></th><td><div style="margin-top:10px"></div></td></tr><tr valign="top"><th align="left">Получатель:</th><td></td></tr></table><br /><table class="pagetext"><thead><tr align="center"><th rowspan="2">Операция</th><th rowspan="2">Дата</th><th colspan="2">Место проведения операции</th><th rowspan="2">Атрибут операции</th><th rowspan="2">Вес (кг.)</th><th rowspan="2">Объявл. ценность (руб.)</th><th rowspan="2">Налож. платёж (руб.)</th><th colspan="2">Адресовано</th></tr><tr align="center"><th>Индекс</th><th>Название ОПС</th><th>Индекс</th><th>Адрес</th></tr></thead><tbody><tr align="center"><td>Приём</td><td>11.07.2012 00:00</td><td>350033</td><td>КРАСНОДАР 33</td><td>Единичный</td><td>0,295</td><td>1470</td><td>1470</td><td>432044</td><td>УЛЬЯНОВСК, УЛЬЯНОВСКАЯ ОБЛАСТЬ</td></tr><tr align="center"><td>Обработка</td><td>12.07.2012 00:00</td><td>350964</td><td>КРАСНОДАР МСЦ ЦОСП</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 00:00</td><td>432099</td><td>УЛЬЯНОВСК ПОЧТАМТ</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 07:53</td><td>432044</td><td>УЛЬЯНОВСК 44</td><td>Прибыло в место вручения</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Вручение</td><td>18.07.2012 00:00</td><td><a href=javascript:Wind(41965)>432044</td><td>УЛЬЯНОВСК 44</td><td>Вручение адресату</td><td>0,295</td><td>1470</td><td>0</td><td></td><td></td></tr></tbody></table>" [1]=> string(2480) "<input type="text" id="BarCode" name="BarCode" size="14" maxlength="14" value="35003348084103"></input></td></tr><tr><td /><td><DIV id="lblBrcdErrMsg" style="COLOR: red; DISPLAY: inline; WIDTH: 50%; HEIGHT: 15px" ms_positioning="FlowLayout" /></td></tr></table><p><input type="hidden" id="searchsign" name="searchsign" /></p><input type="hidden" id="entryBarCode" name="entryBarCode" size="14" maxlength="14" value=""></input><p><input type="button" name="searchbarcode" onclick="CheckInputCode();" value="Найти"></input></p><h2>Результат поиска:</h2><table border="0" cellspacing="4" cellpadding="0"><tr valign="top"><th align="left">Внутрироссийский <br />почтовый идентификатор:</th><td><br />35003348084103</td></tr><tr valign="top"><th align="left"><p style="margin-top:10px">Принято к пересылке:</p></th><td><div style="margin-top:10px">КРАСНОДАР, КРАСНОДАРСКИЙ КРАЙ</div><div>Бандероль 1 класса с объявл. ценностью и налож. платежом</div><div>Без разряда</div><div> Без отметки</div></td></tr><tr valign="top"><th align="left"><div style="margin-top:10px">Отправитель:</div></th><td><div style="margin-top:10px"></div></td></tr><tr valign="top"><th align="left">Получатель:</th><td></td></tr></table><br /><table class="pagetext"><thead><tr align="center"><th rowspan="2">Операция</th><th rowspan="2">Дата</th><th colspan="2">Место проведения операции</th><th rowspan="2">Атрибут операции</th><th rowspan="2">Вес (кг.)</th><th rowspan="2">Объявл. ценность (руб.)</th><th rowspan="2">Налож. платёж (руб.)</th><th colspan="2">Адресовано</th></tr><tr align="center"><th>Индекс</th><th>Название ОПС</th><th>Индекс</th><th>Адрес</th></tr></thead><tbody><tr align="center"><td>Приём</td><td>11.07.2012 00:00</td><td>350033</td><td>КРАСНОДАР 33</td><td>Единичный</td><td>0,295</td><td>1470</td><td>1470</td><td>432044</td><td>УЛЬЯНОВСК, УЛЬЯНОВСКАЯ ОБЛАСТЬ</td></tr><tr align="center"><td>Обработка</td><td>12.07.2012 00:00</td><td>350964</td><td>КРАСНОДАР МСЦ ЦОСП</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 00:00</td><td>432099</td><td>УЛЬЯНОВСК ПОЧТАМТ</td><td>Покинуло сортировочный центр</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Обработка</td><td>17.07.2012 07:53</td><td>432044</td><td>УЛЬЯНОВСК 44</td><td>Прибыло в место вручения</td><td>0,000</td><td>0</td><td>0</td><td></td><td></td></tr><tr align="center"><td>Вручение" [2]=> string(16) "18.07.2012 00:00" [3]=> string(37) "<a href=javascript:Wind(41965)>432044" [4]=> string(12) "УЛЬЯНОВСК 44" [5]=> string(17) "Вручение адресату" [6]=> string(5) "0,295" [7]=> string(4) "1470" [8]=> string(1) "0" [9]=> string(0) "" [10]=> string(0) "" } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 03:08:29 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=139&tid=1464885]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 372ms |

| 0 / 0 |
