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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Регулярное выражение для извлечения содержимого в скобках

Сообщения:  [1-7] 

 
 автор: iMozgoloMchik   (19.07.2012 в 10:25)   письмо автору
 
   для: Sfinks   (19.07.2012 в 01:32)
 

Я с самого начала хотел все сделать в один заход, но так как этого сделать нельзя попробую следовать вашему совету
Спасибо

  Ответить  
 
 автор: Sfinks   (19.07.2012 в 01:32)   письмо автору
 
   для: iMozgoloMchik   (18.07.2012 в 22:17)
 

Одним прогоном у вас это не получится.
Лучше извлечь то что перед "=>" и то что в скобках. Можно для этого изменить шаблон cheops'a так:
$pattern = "|([\S]+)=>\(([^\)]+)\)|";

, а то что что в скобках разбить по запятой функцией explode():
$arr = explode(',',$out[2]);

  Ответить  
 
 автор: iMozgoloMchik   (18.07.2012 в 22:17)   письмо автору
 
   для: cheops   (18.07.2012 в 21:17)
 

пере домной стоит следующая цель:
имеется строка:

text1=>(text2,text3,text4,....)

после пропуска через функцию preg_match_all(); должен возвращаться массив с найденными
элементами то что перед "=>" и все что между "(" и ")" как отдельные элементы массива (каждое значение разделено запятой)

это мне нужно для создания списка:

            <select  name = 'text1'>
                <option value = 'text2'>text2</option>
                <option value = 'text3'>text3</option>
                <option value = 'text4'>text4</option>
            </select>  



если это плохая задумка , то подскажите как еще можно решить задачу такого рода
спасибо

  Ответить  
 
 автор: cheops   (18.07.2012 в 21:17)   письмо автору
 
   для: iMozgoloMchik   (18.07.2012 в 14:40)
 

Регулярное выражение должно справиться, если не справляется, то приведите более объемный кусочек текста, чтобы можно было отладить выражение.

  Ответить  
 
 автор: iMozgoloMchik   (18.07.2012 в 14:40)   письмо автору
 
   для: cheops   (16.07.2012 в 07:02)
 

Проблема в том что список может быть длинее и каждый пункт отделен запятой .
Мне нужно что бы каждый пункт возвращался в виде отдельного элемента массива

  Ответить  
 
 автор: cheops   (16.07.2012 в 07:02)   письмо автору
 
   для: iMozgoloMchik   (15.07.2012 в 21:25)
 

Можно начать отталкиваться от следующего скрипта
<?php 
  $str 
"есть строка
  location=>(home, plaskinino)"
;
  
$pattern "|[\S]+=>\(([^\)]+)\)|";
  
preg_match_all($pattern$str$out);
  echo 
"<pre>";
  
print_r($out[1]);
  echo 
"<pre>";
?>

  Ответить  
 
 автор: iMozgoloMchik   (15.07.2012 в 21:25)   письмо автору
 
 

есть строка
location=>(home, plaskinino)

мне нужно что бы все что в скобках возвращалось как отдельный элемент массива функцией preg_match_all()

у меня не получается((

  Ответить  

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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