Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Помогите пожалуйста с регуляром


Автор: GowarD 14.7.2006, 01:12
Надо из строки

#pl#впрар ывва','99','12','ite','ite','','','тр','5','%чсмt%',0,0,1);sd(", ");#pl#Irn ssd','8','10','','','','','тр','5','%чсмt%',0,0,1);sd(", ");#pl#sssssd');

получить массив в котором будут слова которые находятся между #pl# и '

впрар ывва
Irn ssd
sssssd

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

$res2 = preg_match_all("/\s#pl#\w+'/", $string, $massiv); 

Но чтото не получается.. :О(( Буду признателен за работающий пример, а если он еще и с коментарием будет, то ОГРОМНЕЙШЕЕ ВАМ СПАСИБО!! 

Автор: Drache 14.7.2006, 01:35
попробуй так:

if(preg_match_all("/\#pl\#([а-яА-Я\s\w]+)'/i", $str, $mas)){
  print_r($mas);
}

просто регулярки не понимают русские буквы, точнее набор русских символов не входит в \w. Плюс в \w также не входят пробельные символы.
Поэтому все это недостающее нужно перечислить в символьном классе [...].

 

Автор: GowarD 14.7.2006, 10:20
Спасибо работает.. Можно еще уточнить что такое /i ? 

Автор: skyboy 14.7.2006, 10:29
Регистронечувствительный поиск. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)