|
|
|
| Результат:
<a tabindex="10" onclick="w(this,'80.22.82','84=93');" href="http://www.docaudit.ru/programms/obligatory/ka/user_guid/p1/5/4" target="_blank">5.4. <b>Синтаксис</b> <b>регулярных</b> <b>выражений</b> | ЛАБОРАТОРИЯ АУДИТА - CRM системы ... </a>
Вот написал код, но выводит ошибку:
$pattern = "|(?<=tabindex=\"[0-9]+\" onclick=\"w\(this,\'[0-9]+\.[0-9]+\.[0-9]+\'\,\'[0-9]+=[0-9]+\'\)\;\" href=\")(http://)?[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?(?=\" target=\"_blank\">)|i";
preg_match_all($pattern, $contents, $out);
|
Ошибка:
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'p' in /home/thinkart/www/site1/public_html/spider/read_ya.php on line 7
Помогите, срочно нужно!!! | |
|
|
|
|
|
|
|
для: 0ne
(12.08.2007 в 22:49)
| | У Вас плохо выбран ограничивающий символ регулярки.
| встречается в самом тексте шаблона
Выберие # чтоли... | |
|
|
|
|
|
|
|
для: Trianon
(13.08.2007 в 10:37)
| | Изменил, теперь это выглядит так:
> - 6 строка - >>$pattern = "#(?<=onclick=\"w\(this,\'[0-9]+\.[0-9]+\.[0-9]+\'\,\'[0-9]+=[0-9]+\'\)\;\" href=\")(http://)?[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?(?=\" target=\"_blank\">)#i";
> - 7 строка - >>preg_match_all($pattern, $contents, $out);
|
Но не помогло, ошибка такова:
Warning: preg_match_all() [function.preg-match-all]: Compilation failed: lookbehind assertion is not fixed length at offset 78 in /home/thinkart/www/site1/public_html/spider/read_ya.php on line 7
Весь день небыло света, так что сроки совсем поджимают, жду скорейшего ответа! | |
|
|
|
|
|
|
|
для: 0ne
(13.08.2007 в 22:02)
| | Неужели эта задача настолька трудна, что помочь некому? | |
|
|
|
|
|
|
|
для: 0ne
(13.08.2007 в 23:18)
| | Неужели эта задача настолька трудна, что помочь некому?
Мне, например, лень. | |
|
|
|
|
|
|
|
для: Unkind
(13.08.2007 в 23:41)
| | Я вас понимаю, но тогда смысл сидеть на таком форуме?(вопрос риторический)
Видно придётся читать Д.Фридл Регулярные выражения.
А то так и буду сидеть в луже! | |
|
|
|
|
|
|
|
для: 0ne
(13.08.2007 в 23:50)
| | Ну если очень напрячься, то можно предположить, что ошибка в том, что Вы используете выражения переменной длины в условии. Короче, так писать нельзя:
[0-9]+\.[0-9]+\.[0-9]+\'\,\'[0-9]+=[0-9]+
|
Я бы посоветовал к черту убрать "?<=". | |
|
|
|
|
|
|
|
для: Unkind
(14.08.2007 в 00:06)
| | >Я бы посоветовал к черту убрать "?<=".
Дада, я понял ошибку(вроде читал об этом недавно, а уже забыл), но вот убрать будет сложновато, т.к. этот принцеп единственный который мне пока понятен и приемлим для этого случая.
Вопрос, а можно ли так?
[0-9]{1,2} | |
|
|
|
|
|
|
|
для: 0ne
(14.08.2007 в 00:19)
| | УУУРРААА!!!!
У меня получилось!!!
Я вас всех люблю!!!
Всем кому интересен код парсинка вуаля(php код не приважу, ибо раздел не тот):
$pattern = "#onclick=\"w\(this,\'[0-9]+\.[0-9]+\.[0-9]+\'\,\'[0-9]+=[0-9]+\'\)\;\" href=\"((http://)?[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?)\" target=\"_blank\">#i";
preg_match_all($pattern, $contents, $out);
ВСЁ! Тему можно закрывать, всем ответившим огромное человеческое спасибо! | |
|
|
|