[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражение помощь
RockBoy
Здравствуйте. Начал изучать регулярные выражение, возникли сложности. прошу помочь.
Задача - взять весь текст между тэгами <h1> и </h1> в переменную.

я лишь только могу взять только если там одно слово, и оно английское.

preg_match("/(?<=<h1>)[a-z.\/]*(?=<\/h1>)/i",
$content, $matches);
$host = $matches[0];

а мне нужно весь текст и на любом языке.

спасибо.



Спустя 7 минут, 21 секунда (4.08.2010 - 14:36) DedMorozzz написал(а):
#<h1>([A-zА-яёЁ]+)</h1>#

Спустя 7 минут, 6 секунд (4.08.2010 - 14:43) RockBoy написал(а):
preg_match("/<h1>([A-zА-яёЁ]+)</h1>/i",$content, $matches);
$host = $matches[0];

так? еще бы цифры добавить.

Спустя 2 минуты, 24 секунды (4.08.2010 - 14:45) DedMorozzz написал(а):
$host = $matches[0]; 

Замени на
print_r($matches); 
и уже там его номер отлови.
Далее, модификатор "i" можно не ставить. Тут весь регистр учтён

Спустя 17 минут, 6 секунд (4.08.2010 - 15:02) RockBoy написал(а):
что то вообще ничего не выводит

preg_match("/<h1>([A-zА-яёЁ]+)</h1>/",$content, $matches);
print_r($matches);

может \ где нехватает?

Спустя 4 минуты, 53 секунды (4.08.2010 - 15:07) DedMorozzz написал(а):
ТАК - да, не хватает, ты границы указал "/", а в моём примере - "#"

Спустя 3 минуты, 28 секунд (4.08.2010 - 15:11) RockBoy написал(а):
спасибо большое! а подскажи какая разница между / и #

Спустя 4 минуты, 33 секунды (4.08.2010 - 15:15) DedMorozzz написал(а):
никакой, кроме того, что ты ТОЛЬКО ЧТО увидел. # явлется более неайтральным символом, чем /. Значит и экранировать его реже надо. Т.е. с ним проблем меньше.

Спустя 1 час, 39 минут, 3 секунды (4.08.2010 - 16:54) RockBoy написал(а):
мне нужно еще чтобы слова с пробелами брались и с дефисами, поэтому добавил следующее

preg_match("#<h1>([\-\ A-zА-я0-9ёЁ]+)</h1>#",$content, $matches);
print_r($matches);

иногда возникают проблемы с русскими словами. с английскими все норм.
Пример: если в $content = '<h1>Башлачев Александр</h1>'; то регулярка не работает.

а если $content = '<h1>Дягилева Янка</h1>'; то прекрасно работает регулярка.
Прошу помощи!

Спустя 1 минута, 20 секунд (4.08.2010 - 16:55) DedMorozzz написал(а):
после закрывающего # поставь "u". Т.е. #.....#u, ....

Спустя 3 минуты, 14 секунд (4.08.2010 - 16:59) RockBoy написал(а):
спасибо, работает

Спустя 16 минут, 25 секунд (4.08.2010 - 17:15) RockBoy написал(а):
еще вопрос: мне нужно в массив $sound загнать все слова, встречающиеся между тэгами blank> и </a> Попробовал выражение, что мы вывели из примера выше, однако при этом в массив заносится только первое вхождение, остальные не ищет.

preg_match("#blank>([\-\ A-zА-я0-9]+)</a>#",$content, $sound);
print_r($sound);

Спустя 1 минута, 33 секунды (4.08.2010 - 17:17) DedMorozzz написал(а):
юзай Preg_Match_all

Спустя 1 час, 24 минуты, 43 секунды (4.08.2010 - 18:41) RockBoy написал(а):
заюзал. работает.

Спустя 11 часов, 54 минуты, 25 секунд (5.08.2010 - 06:36) arvitaly написал(а):
Я обычно используй тильду ~, ни разу еще не было проблем

Спустя 9 дней, 10 часов, 22 минуты, 40 секунд (14.08.2010 - 16:58) Gokusa написал(а):
и как ты юзаешь тильду?
з.ы.я обычно юзаю Настю smile.gif)))0

 ! 

М
Офф топ.
DedMorozzz

Спустя 7 минут, 26 секунд (14.08.2010 - 17:06) Gokusa написал(а):
я на самом деле хочу узнать что он имел ввиду:)

Спустя 3 минуты, 17 секунд (14.08.2010 - 17:09) DedMorozzz написал(а):
ограничение регулярных выражений. Я использую # он ~.

Спустя 5 минут, 35 секунд (14.08.2010 - 17:15) Gokusa написал(а):
объективно тильда круче smile.gif
чем # smile.gif
спасиб
тьфу,конечно же субъективно
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.