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

Форум Регулярные Выражения

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

 

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

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

тема: Подскажите с регуляркой
 
 автор: man1   (09.01.2010 в 01:00)   письмо автору
 
 

Мужики, помогите на регулярках сарсить тайтл )

Я не понимаю, если после [\/+] добавлять [a-z]{5} и.т.п, то пропадает предыдущий результат.

Было:
Array ( [0] => Array ( [0] => title>тест</ ) ) 


После добавления:
Array ( [0] => Array ( [0] => title>тест


<?
$str 
'<title>тест</title>';
  if (
preg_match_all("/[^<][a-z]{4,5}[$>][а-я]{4}[$<][\/+]/"$str$matches))  {
  
  
print_r($matches);
  
  } else  echo 
"чето не то оО";
?>


И как вообще правильно парсить теги вида "<", "^" прямой слэш "/".

В мануале на софттайме сказано, что нужно экранировать спец.символы регулярных выражений, если мы хотим их найти, т.е ^ => ^\, $ => \$. Так получается?

А по поводу слэшей (прямых, обратных), что с ними-то делать? Тоже экранировать?
/ => /\

И чем отличаются скобки "[ ]" от "( )"?

  Ответить  
 
 автор: ~AquaZ~   (09.01.2010 в 13:36)   письмо автору
 
   для: man1   (09.01.2010 в 01:00)
 

Слэш экранировать только обратный.
[ ] - задание диапазона знаков
( ) - логическое объединение

  Ответить  
 
 автор: big-trot   (10.01.2010 в 11:50)   письмо автору
 
   для: man1   (09.01.2010 в 01:00)
 

Мужики, помогите на регулярках сарсить тайтл

<title>(?!</title>).*</title>

  Ответить  
 
 автор: cheops   (10.01.2010 в 13:08)   письмо автору
 
   для: big-trot   (10.01.2010 в 11:50)
 

<title>.*?</title>

или если необходимо исключить строки вида "<title></title>"
<title>.+?</title>

PS Под новые вопросы лучше заводить новые темы.

  Ответить  
 
 автор: man1   (10.01.2010 в 22:32)   письмо автору
 
   для: cheops   (10.01.2010 в 13:08)
 

: ~AquaZ~
big-trot cheops

Спасибо за ответы, потренировался пописать регулярные выражения, вроде начало получаться.

Правда остался неясен момент с пробелами и переносом строк в html коде:
<?

/* Верхние примеры (см.низ)
#$file = "тел. <b>+7 903 787-6055</b><b></b>, Бэлла.";
#$file = "тел. +7 926 083-3466, Олеся.";
#$file = "тел. +7 926 479-9870, Лика.";
#$file ="тел. <b>+7 926 738-4638</b><b></b>, Юля.";
#$file ="тел. <b>+7 926 479-9870</b><b></b>, Лика.";
Верхние примеры (см.низ) */ 
$file ="<div class=\"info\">
    тел. <b>+7 906 033-9791</b><b></b>, Мила .
    &nbsp;"
;

/* Частично написал регулярное выр-ие, 
но как быть с пробелом и переносом строки перед "тел." ? 
Как их записать в регулярном выражении? 

(
    [0] => Array
        (
            [0] => <div class="info">
        )

    [1] => Array
        (
            [0] => <
        )

    [2] => Array
        (
            [0] => "info">
        )

)


*/    

 
if(preg_match_all("/(<+)[a-z]{3} [a-z]{5}=(\"[a-z]{4}\">)/"$file$matches)) { 

/* Парсинг примеров сверху, но он почему-то парсит только САМИ ПРИМЕРЫ, при реальном парсинге страницы ничего не находится...
#if(preg_match_all("/(<+)[a-z]{3} [a-z]{5}=(\"[a-z]{4}\">) \r\n  [А-я]{3}/", $file, $matches)) { 
#if(preg_match_all("/[А-я]{3}. <b>\+[0-9]{1} [0-9]{3} [0-9]{3}-[0-9]{4}<\/b><b><\/b>, [А-я]{1,}.+/", $file, $matches)) {
#if(preg_match_all("/тел. \+[0-9]{1} [0-9]{3} [0-9]{3}-[0-9]{4}, [А-я]{1,}./", $file, $matches)) {
*/

print_r($matches);

} else echo 
"не найдено";



?>

  Ответить  
 
 автор: big-trot   (10.01.2010 в 22:43)   письмо автору
 
   для: man1   (10.01.2010 в 22:32)
 

Символ точка означает в регулярных выражениях либой символ, если вы хотите точку интерпретировать как знак припинания, то её необходимо экранировать.
А на счет переноса строк и пробелов почитайте про модификаторы.

  Ответить  
 
 автор: man1   (10.01.2010 в 22:59)   письмо автору
 
   для: big-trot   (10.01.2010 в 22:43)
 

Это вот это: http://www.codenet.ru/webmast/php/regexp2.php и вот это: http://depositfiles.od.ua/php/08.php#g ?

А можно какой-нибудь пример с модификаторами, если не сложно? На примерах лучше усваивается как-то =)

  Ответить  
 
 автор: ride   (11.01.2010 в 00:31)   письмо автору
 
   для: man1   (10.01.2010 в 22:59)
 

доступно написано, усвоите быстро

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

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