2015-04-20 3 views
-3

У меня есть строка что-то вроде этогоСтрока соответствия с помощью preg_match() в PHP

$str="syx.ypzd [xys.ypd] yup"; 

Я пытаюсь получить значение внутри [ ].

У меня есть код что-то вроде этого

preg_match('[xys.ypd]', $str, $Fdesc); 
echo $Fdesc[1]; 

Но это не работает

Пожалуйста, дайте мне знать, где я неправильно

Спасибо & С уважением

+0

Вам необходимо приложить больше усилий для решения ваших проблем. Пока, [см. Это] (http://php-regex.blogspot.com/search/label/Regular%20Expressions) –

ответ

2

Вы не используя правильный синтаксис:

/\[(.*)\]/ 

Этот номер будет соответствовать тому, что находится между [ и ].

  • / начало регулярного выражения
  • \[ совпадает с [
  • (.*) совпадает с любым количеством символов (в круглых скобках «захват» эта часть, так что вы получите его в результатах)
  • \] матчи ]
  • / конец регенератора

Код:

preg_match('/\[(.*)\]/', $code, $Fdesc); 
1

Вот код, который работает

 
    $str="syx.ypzd [xys.ypd] yup"; 
    preg_match('[xys.ypd]', $str, $Fdesc); 
    print_r($Fdesc); 

Выход:

Массив ( [0] => xys.ypd )

1

Попробуй это.

preg_match('\[(.*)\]', $code, $Fdesc); 
echo $Fdesc[1]; 
+0

И где разница в этом ответе: http://stackoverflow.com/a/29747093/ 3933332? – Rizier123

+0

Не видел этого. Ты прав. – ag0702

Смежные вопросы