Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужен пример по регулярным выражениям
 
 автор: kirpich   (18.02.2010 в 21:07)   письмо автору
 
 

Есть строка
<b>Адрес:</b><br>ул. Серышева, 42</li>

Как вырвать из неё часть?:
ул. Серышева, 42

С помощью функции preg_match()
короче нужен регулярное выражение с небольшим пояснением по нему.
Изучать сейчас времени нет, а эту функцию срочно надо сделать:(
Поможете?

  Ответить  
 
 автор: ~AquaZ~   (18.02.2010 в 21:17)   письмо автору
 
   для: kirpich   (18.02.2010 в 21:07)
 

Выражение:
#<b>([^<])</b><br>([^<])</li>#is

  Ответить  
 
 автор: heed   (18.02.2010 в 21:22)   письмо автору
 
   для: kirpich   (18.02.2010 в 21:07)
 

:) нужно так и написать <b>Адрес:</b><br>ул. Серышева, 42</li>
, только взять то что из этого нужно в скобки ()

или ?
preg_match('@Адрес:</b><br>([^<]+)@', $txt, $array);
print_r($array);

[^<]+ это один или больше не"<" байт

  Ответить  
 
 автор: kirpich   (18.02.2010 в 21:36)   письмо автору
 
   для: heed   (18.02.2010 в 21:22)
 

Не одно выражение не работает, вернее работает, но если я применяю его не только к этой строке, а к тексту с этой строкой внутри, не работает:(
Уточню:
Есть HTML страницы, в "их тексте" есть часть:
<h1 size="5" style="padding-bottom: 1em;">Berlin club inc</h1>
<p align="center"><img src="/uploads/catalog/logo/2096/2.jpg"></p><ul><li><b>Адрес:</b><br>Бизнес-центр «Новый квартал» (ост. Павленко)</li><li><b>Телефон:</b><br>45-43-30</li><li><b>URL:</b><br><a href="javascript:open_url('http://www.berlin-club.ru/')">http://www.berlin-club.ru/</a><br></li><br><li><b>Часы работы:</b><br>22.00-06.00</li><br><li><input value="Распечатать" onclick="return optbtns.get(this,'Print');" class="print" type="button"></li><li><input value="Отзывы" onclick="card.comments(2096,'87370379')" class="reports" type="button"></li></ul><br><h2>Размещено в рубриках:</h2><ul><li><a href="/catalog/?catid=10190">Развлечения</a> &#8594; <a href="/catalog/?catid=10200">Клубы</a> &#8594; ...</li></ul>

Мне необходимо с этого кода выдрать: Название (оно в теги Н1), адрес, телефон, url

  Ответить  
 
 автор: heed   (18.02.2010 в 22:09)   письмо автору
 
   для: kirpich   (18.02.2010 в 21:36)
 

должно было работать, возможно если текст в utf-8, нужно поставить "u" модификатор, там-же где я поставил "x"
всмысле #x'
<pre><?php

$txt 
= <<<TXT
этот текст
TXT;

preg_match('#<h1[^>]*>([^<]++)</h1>
[^А]++Адрес:</b><br>([^<]++)
[^Т]++Телефон:</b><br>([^<]++)
[^U]++URL:.+?(http://[^"\']++)#x'
$txt$array);

unset(
$array[0]);
print_r($array);

  Ответить  
 
 автор: kirpich   (18.02.2010 в 22:13)   письмо автору
 
   для: heed   (18.02.2010 в 22:09)
 

Не работает:(
Поставил u выводит: Warning: preg_match() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset 27 in ...

  Ответить  
 
 автор: .heed   (18.02.2010 в 22:32)
 
   для: kirpich   (18.02.2010 в 22:13)
 

значит сам скрипт создали и редактируете не в utf-8-кодировке, поэтому ругается на не-utf-8 буквы
, сам текс-то по которому ищете в какой кодировке ?

, если в utf-8, то просще всего будет просто переключить редактор на utf-8, и вставить туда выражение, или вообще весь скрипт перекодировать в utf-8
, более затруднительно заменять там все русские буквы на их такое представление , буква А == \xd0\x90

, если проверяемый текст не в utf-8, значит ищите там различия с тем что вы сюда запостили
, а лучше изучить выражения :) тогда сможете переделать

  Ответить  
 
 автор: kirpich   (18.02.2010 в 22:38)   письмо автору
 
   для: .heed   (18.02.2010 в 22:32)
 

Спасибо, с ошибкой разобрался, но массив все равно пуста даже при установки u:(
Буду разбираться, может что получиться, еще раз Спасибо!

  Ответить  
 
 автор: heed   (18.02.2010 в 22:38)   письмо автору
 
   для: kirpich   (18.02.2010 в 22:13)
 

я обычно отрезаю с хвоста выражение по кускам, когда не могу понять почему не совпадает

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования