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

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

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

 

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

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

тема: помогите вытащить выражения из строки
 
 автор: jujulka   (02.03.2009 в 22:19)   письмо автору
 
 

Например есть строка: {Он} сильно {любит} {есть {фрукты} летом}
Нужно получить массив array('Он', 'любит', 'есть {фрукты} летом')

Пробовала preg_match_all(... но внутренним выражением не получается условие написать:(((
Большое спасибо!

  Ответить  
 
 автор: Саня   (09.03.2009 в 09:40)   письмо автору
 
   для: jujulka   (02.03.2009 в 22:19)
 

<?php
$s 
'{Он} сильно {любит} {есть {фрукты} летом}';

$result = array();
$level 0// уровнь вложенности

$len strlen($s);
for ( 
$i 0$temp ''$i $len$i++ ) {

  if ( 
$s[$i] == '{' ) {
    
$level++;
    if ( 
$level == ) continue;
  } elseif ( 
$s[$i] == '}' ) {
    
$level--;
    if ( 
$level == && $temp !== '' ) {
      
$result[] = $temp;
      
$temp '';
    }
  }
  if ( 
$level $temp .= $s[$i];
  if ( 
$level $level 0;
}

print_r($result);

Это всё же не регулярные выражения, но результат правильный

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

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