Помогите составить регулярку

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
systemiv
Сообщения: 360
Зарегистрирован: 2011.06.26, 22:55
Откуда: Липецк
Контактная информация:

Помогите составить регулярку

Сообщение systemiv »

Давно их не писал, и немного забыл как их писать под курл, собственно вот:

Код: Выделить всё

<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://citycomfort.com.ua/');
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$indexPage = curl_exec($curl);
curl_close($curl);
preg_match_all('/<a href="http:\/\/citycomfort.com.ua\/\?roomID=[:digit]?\&city=[:digit]?">[:word]<\/a>/iU', $indexPage, $content);
echo var_dump($content[0]);
?>
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Помогите составить регулярку

Сообщение rak »

так а в чем вопрос?
systemiv
Сообщения: 360
Зарегистрирован: 2011.06.26, 22:55
Откуда: Липецк
Контактная информация:

Re: Помогите составить регулярку

Сообщение systemiv »

Ну приходит пустой массив.
Вот что мне нужно найти: <a href="http://citycomfort.com.ua/?roomID=130&city=1">
Как правильно составить регулярку?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Помогите составить регулярку

Сообщение rak »

Код: Выделить всё

preg_match_all('|<a href="(http://citycomfort.com.ua/\?roomID=[0-9]+&city=[0-9]+)">[a-z]+</a>|iu', $indexPage, $matches);
 
сслыки будут в $matches[1]
systemiv
Сообщения: 360
Зарегистрирован: 2011.06.26, 22:55
Откуда: Липецк
Контактная информация:

Re: Помогите составить регулярку

Сообщение systemiv »

а вот такой вопрос, как можно обозначит контент, который может быть, а может и не быть?
например щас парсю каталог, и там не у всех есть телефоны. как можно указать, что телефон нужно грабить, если он есть?
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: Помогите составить регулярку

Сообщение Nafania »

systemiv писал(а):а вот такой вопрос, как можно обозначит контент, который может быть, а может и не быть?
например щас парсю каталог, и там не у всех есть телефоны. как можно указать, что телефон нужно грабить, если он есть?
знак вопроса можно использовать.
systemiv
Сообщения: 360
Зарегистрирован: 2011.06.26, 22:55
Откуда: Липецк
Контактная информация:

Re: Помогите составить регулярку

Сообщение systemiv »

А вот ещё вопрос, как можно спарсить следующие??
<div class="contacts">ул. Михайловская, д. 24-б, этаж 1, оф. 80-а, Киев, а/я 222, Телефон: (097) 673-2079</div>
Нужно получить:
ул. Михайловская, д. 24-б, этаж 1, оф. 80-а
(097) 673-2079
Пробовал примерно так:
<div class="contacts">(.*?), .*?, Телефон: (.*?)</div>

Проблема заключается в том, что адреса может и не быть, или может не быть телефона. Но это пока опустил. У меня даже вот так не парсится.
С регулярками пока трудно. Учусь, поэтому прошу помощи
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Помогите составить регулярку

Сообщение Ekstazi »

1. Может быть не та кодировка у строки.
2) Используйте preg_quote - так будет проще.
esche
Сообщения: 1054
Зарегистрирован: 2010.11.24, 03:39

Re: Помогите составить регулярку

Сообщение esche »

3. я бы пробелы в шаблоне убрал.. вдруг там табы.
4. пользовать модификаторы |Usi
...
Ответить