MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« : 12-07-2005 04:43 » |
|
Хорошо знающих регулярные выражения прошу о помощи есть у меня два каталога хтмл файлов из которых мне нужно вытащить определённую строку. Из одного каталога такую : <span class="label">Любой текст переменной величины</span>
а из другого такую : <a class="detail_email" href="javascript:emailpage('какой-то_урл_адрес')">my@email.com</a>
Сделал бы вручную, да страниц таких очень много
|
|
« Последнее редактирование: 15-12-2007 16:23 от Алексей1153++ »
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
PantiL
Гость
|
|
« Ответ #1 : 12-07-2005 06:17 » |
|
Первая строка будет соответствовать следующему регулярному выражению '<span class="label">[[:alnum:]]*</span>'
А во второй "какой-то урл" меняться будет?
|
|
« Последнее редактирование: 15-12-2007 16:24 от Алексей1153++ »
|
Записан
|
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #2 : 12-07-2005 06:30 » |
|
А во второй "какой-то урл" меняться будет?
Да, всегда разный будет, но всегда вида : href="javascript:emailpage('index.php-page=detail&action=email&id=1DE0EE10-94B8-11D6-B572-00E0299BD066&aid=blabla@bla.com.htm'/*tpa=http://www.url.com/index.php?page=detail&action=email&id=1DE0EE10-94B8-11D6-B572-00E0299BD066&aid=blabla@bla.com*/);"
|
|
« Последнее редактирование: 15-12-2007 16:25 от Алексей1153++ »
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #3 : 12-07-2005 09:34 » |
|
<span class="label">Любой текст переменной величины</span> /<span class="label">([^<]*)<\/span>/is На выходе текст между тегами.
<a class="detail_email" href="javascript:emailpage('какой-то_урл_адрес')">my@email.com</a> /<a class="detail_email" href="javascript:emailpage\('([^']*)'\)">(^[^<]*)<\/a>/is На выходе два значения: url и текст между тегами.
|
|
« Последнее редактирование: 15-12-2007 16:26 от Алексей1153++ »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #4 : 13-07-2005 04:32 » |
|
RXL, огромный сенькс Вот знаю что надо учить регекспы, а всё ленюсь
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #5 : 20-07-2005 06:25 » |
|
Чёй то вот это : /<a class="detail_email" href="javascript:emailpage\('([^']*)'\)">(^[^<]*)<\/a>/is не отрабатывает Как правильно подставить это в preg_match_all ? Кавычки тут и двойные и одинарные есть. И если я, подставляя это выражение как стринг в функцию, использую слэши дополнительные, то ессесно не срабатывает регексп
|
|
« Последнее редактирование: 15-12-2007 16:26 от Алексей1153++ »
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #6 : 20-07-2005 09:27 » |
|
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #7 : 20-07-2005 20:27 » |
|
Опечатка вышла - "^" затесалась. Внутри кавычек можно вводить кавычки того же типа, но со слешем. Дрессеровке поддаются и одинарные и двойные. <?php
$text="<a class=\"detail_email\" href=\"javascript:emailpage('какой-то_урл_адрес')\">my@email.com</a>";
preg_match("/<a class=\"detail_email\" href=\"javascript:emailpage\('([^']*)'\)\">([^<]*)<\/a>/is",$text,$a);
print join(' * ',$a);
?>
|
|
« Последнее редактирование: 15-12-2007 16:27 от Алексей1153++ »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #8 : 21-07-2005 04:52 » |
|
RXL, благодарю
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #9 : 21-07-2005 10:08 » |
|
Соотв., если в строке возможно больше одной искомой последовательности, то используется preg_match_all(). preg_match_all($regexp, $text, $a, PREG_SET_ORDER); http://www.php.net/manual/ru/function.preg-match-all.php
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #10 : 21-07-2005 10:35 » |
|
Спасибо за ссылку, но в ней нет необходимости Я это уже успел прочитать и использовать
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
|