Разбор int из строки после определенной части в PHP - PullRequest
0 голосов
/ 09 июня 2018

Как мне анализировать int или ints из изменяющейся строки каждый раз, когда происходит конкретная часть.Например:

$output = "jack john 123 jill £2310 peter paul 123 328190 john john peter 1 paul 049 peter paul 999"; 

Мне нужно только целые числа после «peter paul», которые в данном случае равны 123 и 999. Должно работать независимо от того, сколько раз встречается «peter paul».Разобрать их в массив, наверное, лучше?

1 Ответ

0 голосов
/ 09 июня 2018

Для этого вам понадобится регулярное выражение, используемое функцией php preg_match_all () .В частности, один с положительным взглядом за спиной .

<?php
// your input
$haystack = "jack john 123 jill £2310 peter paul 123 328190 john john peter 1 paul 049 peter paul 999";

// find the matches and write them into $matches
preg_match_all('/(?<=peter paul\s)[\d]+/', $haystack, $matches, PREG_OFFSET_CAPTURE);
// output
print_r($matches);

Регулярное выражение (?<=peter paul\s)[\d]+ очень просто объяснено на обычном языке:

Найти все после (?<=) 'pater paul', за которым следует пробел (\s), который представляет собой цифру (\d) и встречается от 1 до n раз (+)

рабочий фрагмент: https://3v4l.org/YsMuM

...