2016-07-06 7 views
0
$data = '| years_active = 1960–70 | label = '; 
preg_match('active(.*?)label', $data, $matches); 
echo print_r($matches); 

Я ожидал, что это приведет к массиву, содержащему значение: '= 1960 ~ 70 | ', но я просто получаю вывод: 1.Использование preg_match для извлечения строки в строке?

В идеале я пытаюсь извлечь только:' 1960 - 70 '.

Куда я иду не так? Благодарю.

ответ

0

Ваш ответ на результат print_r(): «Если вы хотите захватить вывод print_r(), используйте параметр return. Когда этот параметр установлен в TRUE, print_r() вернет информацию, а не распечатает Это." http://php.net/manual/en/function.print-r.php

Кроме того, необходимо заранее определить $ соответствий при preg_match принимает реф в этом массиве, и вы провалил регулярное выражение: '/active(.*)label/'

<?php 
$matches = array(); 
$data = '| years_active = 1960–70 | label = '; 
preg_match('/active(.*)label/', $data, $matches); 
var_dump($matches); 
Смежные вопросы