-1

我有一个从 MySQL 数据库中获取的不同长度的字符串,在该字符串中是一个值(下面以粗体显示):

s:1:"4"、s:2:"53"、s:3:"7"、s:4:"5"

我需要一种方法来查找s:3:之后的引号中的任何内容。所以在这个例子中,它将是7。我环顾四周,我认为我需要使用explode 功能,但我无法实现它。该字符串可能包含 this 的多个值,在这种情况下,我想将它们全部放入一个数组中。

4

2 回答 2

3

用于preg_match_all()

$str = 's:1:"4", s:2:"53", s:3:"7", s:4:"5"';

if(preg_match_all('/s:3:"(.*?)"/', $str, $matches)) {
    var_dump($matches[1]);
}
于 2013-04-25T19:37:16.613 回答
1

非贪婪方法,包括多行。

<?php 
  $str = 's:1:"4", s:2:"53", s:3:"7", s:4:"5"';

  if(preg_match_all('!s:3:"([^"]+)"!s', $str, $matches)) {
    print_r($matches);
  }

?>
于 2013-04-25T19:41:22.500 回答