首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >指定字符的模式

指定字符的模式
EN

Stack Overflow用户
提问于 2012-03-28 20:30:41
回答 3查看 52关注 0票数 0

我需要从一个大数据包中提取名字。

代码语言:javascript
运行
复制
$frame = '\"Amy Dardomba\":1,\"Kisb Muj Lorence\":1,\"Apkio Ronald\":1,....

有超过200-300个名字我必须放在数组中。

我试过了

代码语言:javascript
运行
复制
    preg_match_all('#\/"(.*)\/":1#',$frame,$imn);
print_r($imn);

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

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-28 20:44:43

在我看来,这些数据就像是一些混账的JSON。假设您的代码的格式与上面的完全相同,请尝试以下代码:

代码语言:javascript
运行
复制
// 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
EN

Stack Overflow用户

发布于 2012-03-28 20:44:10

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

代码语言:javascript
运行
复制
preg_match_all('#\\"(.*?)\\":1#',$frame,$imn);

还添加了一个用于非贪婪正则表达式的?

票数 0
EN

Stack Overflow用户

发布于 2012-03-28 20:51:25

代码语言:javascript
运行
复制
$input = '\"Amy Dardomba\":1,\"Kisb Muj Lorence\":1,\"Apkio Ronald\":1';
preg_match_all('#"([a-zA-Z\x20]+)"#', stripslashes($input), $m);

$m[1]中查找

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9907529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档