preg_match с множественным поиском - PullRequest
0 голосов
/ 10 мая 2018

У меня есть этот код

$a='-t40-';
preg_match('/^-t(.*?)-$/', $a,$match);
var_dump($match);

Результат:

array(2) { [0]=> array(1) { [0]=> string(5) "-t40-" } 
           [1]=> array(1) { [0]=> string(2) "40" } }

, если я добавлю текст после последнего "-", код будет недействительным.если $ a = '- t40-некоторый текст';мне нужен результат, похожий на:

array(3) { [0]=> array(1) { [0]=> string(5) "-t40-" } 
           [1]=> array(1) { [0]=> string(2) "40" } 
           [2]=> array(1) { [0]=> string(9) "some text" }}

Как отредактировать шаблон, чтобы найти «какой-нибудь текст»?Заранее спасибо.

1 Ответ

0 голосов
/ 10 мая 2018
$a='-t40-some text';
preg_match('/^-t(.*?)-(.*?)$/', $a,$match);
var_dump($match);

Выход:

array(3) {
  [0]=>
  string(14) "-t40-some text"
  [1]=>
  string(2) "40"
  [2]=>
  string(9) "some text"
}

Пояснение:

^           : beginning of line
  -t        : literally "-t"
  (.*?)     : group 1, 0 or more any charater but newline, not greedy
  -         : literally "-"
  (.*?)     : group 2, 0 or more any charater but newline, not greedy
$           : end of line
...