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

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

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

 

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

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

тема: поиск между символами
 
 автор: tima2010   (16.09.2011 в 12:31)   письмо автору
 
 

привет! помогите пожалуйста разобраться как написать следующее рег выражение

есть строка, нужно вывести на экран только то что заключено между скобками ( )


<?php
$str 
"text(выводим)текст(выводим два)";
if (
preg_match(' что тут должно быть '$str$arr)) 
$value $arr[0];
echo 
$value;
?>

  Ответить  
 
 автор: cheops   (16.09.2011 в 13:05)   письмо автору
 
   для: tima2010   (16.09.2011 в 12:31)
 

Можно начать отталкиваться от следующего скрипта
<?php 
  $str 
"text(выводим)текст(выводим два)"
  
$pattern "|\(([^)]+?)\)|";
  if (
preg_match_all($pattern$str$arr))  
  echo 
"<pre>";
  
print_r($arr[1]);
  echo 
"<pre>";
?>

  Ответить  
 
 автор: tima2010   (17.09.2011 в 13:18)   письмо автору
 
   для: cheops   (16.09.2011 в 13:05)
 

Спасибо! понял принцип
в чем моя ошибка?


<?php  
  $str 
"text(выводим)текст(выводим два)";  
  
$pattern "|\(([^)]+?)\)|"
  if (
preg_match_all($pattern$str$arr))   
  foreach(
$arr as $value
  {
     echo 
$value."<br />"
  } 
?>   


выводит

Array
Array


:(

  Ответить  
 
 автор: cheops   (17.09.2011 в 13:20)   письмо автору
 
   для: tima2010   (17.09.2011 в 13:18)
 

preg_match_all() возвращает двумерный массив, поэтому в foreach() следует указывать $arr[1]
<?php   
  $str 
"text(выводим)текст(выводим два)";   
  
$pattern "|\(([^)]+?)\)|";  
  if (
preg_match_all($pattern$str$arr))    
  foreach(
$arr[1] as $value)  
  { 
     echo 
$value."<br />";  
  }  
?>

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

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