Рег. выражения для тупых =(

  • Автор темы DoctorD
  • Дата начала

DoctorD

Guest
Рег. выражения для тупых =(

Объясните мне как сделать так чтобы выбрать все что лежит
между <b class = price> и </b>

просто дайте код =)
 

Bosha

Новичок
Пример:
$content ='<b class = price> some text </b>';
$content = preg_match_all("/<b.*>(.*)<\/b>/",$content, $arr);
print_r($arr);
 

valyala

Новичок
Bosha, что-то твой пример глючит на такой строчке:
PHP:
$content ='<b>a</b>b<b>c</b>d<b>e</b>';
Да и вообще, он больше одного совпадения (последнего) не найдет. Так что загляни в мануал по синтаксису регулярных выражений в РНР http://www.php.net/manual/ru/pcre.pattern.syntax.php и поищи там слово "жадность".
 

Splurov

Новичок
2valyala
$content ='<b>a</b>b<b>c</b>d<b>e</b>';
preg_match_all("/<b.*>(.*?)<\/b>/", $content, $arr);
 

SiMM

Новичок
Splurov, не стоит отвечать на риторические вопросы с вложенными в них ответами ;)
 

f1

formula 1
интересно, а откуда граждане задающие риторические вопросы взяли
1 что нужны все совпадения
2 что нужно использовать ограничение жадности

телепаты :)
 

valyala

Новичок
Splurov, прежде чем отвечать на риторические вопросы, проверь свое регулярное выражение. Оно находит то же самое, что и выражение, предложенное Bosha, т.е. последнее совпадение.

интересно, а откуда граждане задающие риторические вопросы взяли
1 что нужны все совпадения
2 что нужно использовать ограничение жадности

телепаты
Да, похоже, тут все, кроме тебя, телепаты :) Еще раз перечитал вопрос. Если понимать его буквально, то нужно такое выражение:
PHP:
$content = '<b class = price>cut me</b>';
$content = preg_replace('/^<b class = price>(.*)<\\/b>$/', '\\1', $content);
 

SiMM

Новичок
valyala, replace не канает - ему выбрать надо ;)
PS: хотя кто его знает, что он имел в виду и зачем оно ему понадобилось, а так же чем его не устраивали строковые функции...
 
Сверху