Справка по поиску Regex - PullRequest
1 голос
/ 25 мая 2009

С учетом строки, такой как:

a:2:{i:0;s:1:"1";i:1;s:1:"2";}

Я хочу найти каждое целое число в кавычках и создать массив всех целых чисел, найденных в строке.

Конечный результат должен быть массивом:

Array
(
    [0] => 1
    [1] => 2
)

Я предполагаю, что вы используете preg_match (), но у меня нет опыта работы с регулярными выражениями: (

Ответы [ 2 ]

7 голосов
/ 25 мая 2009

Как насчет этого:

 $str = 'a:2:{i:0;s:1:"1";i:1;s:1:"2";}';
 print_r(array_values(unserialize($str)));

Не регулярное выражение, тот же ответ.

Это работает, потому что ваша строка является сериализованным массивом PHP. Использование регулярных выражений было бы неправильным способом сделать это.

0 голосов
/ 25 мая 2009

Регулярное выражение (в программе) будет выглядеть так:

$str = 'a:2:{i:0;s:1:"1";i:1;s:1:"2";}';
preg_match_all('/"(\d+)"/', $str, $matches);
print_r($matches[1]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...