指定字符的模式

时间:2012-03-28 12:30:41

标签: php regex preg-match pcre

我需要从大数据包中提取名称。

$frame = '\"Amy Dardomba\":1,\"Kisb Muj Lorence\":1,\"Apkio Ronald\":1,....

我必须放入超过200-300个名字。

我试过了,

    preg_match_all('#\/"(.*)\/":1#',$frame,$imn);
print_r($imn);

但它不起作用。请帮帮我。

由于

3 个答案:

答案 0 :(得分:1)

这些数据对我来说就像是一些卑鄙的JSON。假设您的代码格式与上述相同,请尝试以下方法:

// Two pass approach to interpollate escape sequences correctly
$toJSON = '{"json":"{'.$frame.'}"}';
$firstPass = json_decode($toJSON, TRUE);
$secondPass = json_decode($firstPass['json'], TRUE);

// Just get the keys of the resulting array
$names = array_keys($secondPass);

print_r($names);
/*
  Array
  (
      [0] => Amy Dardomba
      [1] => Kisb Muj Lorence
      [2] => Apkio Ronald
      ...
  )
*/

See it working

答案 1 :(得分:0)

\/将匹配/个字符,但您需要匹配\,因此请改用\\

preg_match_all('#\\"(.*?)\\":1#',$frame,$imn);

还为非贪婪的正则表达式添加了?

答案 2 :(得分:0)

$input = '\"Amy Dardomba\":1,\"Kisb Muj Lorence\":1,\"Apkio Ronald\":1';
preg_match_all('#"([a-zA-Z\x20]+)"#', stripslashes($input), $m);

查看$m[1]