好的,这是我收到的文字的一个例子
"data": [
{
"post_id": "164902600239452_10202071734744222",
"actor_id": 164902600239452,
"target_id": null,
"likes": {
"href": "https://www.facebook.com/browse/likes/?id=10202071734744222",
"count": 2,
"sample": [
678063648,
100000551340876,
100000805495404,
100000905843684,
],
"friends": [
],
"user_likes": false,
"can_like": true
},
"comments": {
"can_remove": false,
"can_post": true,
"count": 0,
"comment_list": [
]
},
"message": "Down to the FINAL 3 SEATS for It Factor LIVE 2013... WHO will snag them before we close registration on October 15th???\n\nLearn more now at http://www.ItFactorLIVE.com/"
}, ]
我想只匹配“示例”后括号内的数字:
"sample": [
678063648,
100000551340876,
100000805495404,
100000905843684,
],
所以我最终得到了这个
678063648
100000551340876
100000805495404
100000905843684
有人可以帮助我使用正确的正则表达式来实现这一目标吗?
答案 0 :(得分:1)
好的 - 我已经查看了@hwnd建议的解决方案,以及您为“真实”数据提供的链接,并提出了以下建议:
\d+(?=,*\s+(?:\d|\]))
您可以在http://regex101.com/r/pL3gW2看到这与样本中方括号内的每个数字字符串相匹配。
@ hwnd解决方案的主要区别是在*
之后添加了,
,使得数字后面的逗号可选:这允许表达式在关闭之前匹配最后一组数字]
。没有它,匹配会跳过括号内的最后一个数字。
之前曾说过:几乎所有语言/平台都有强大的JSON解析器。看看他们。
答案 1 :(得分:0)
看看这是否适合你
pattern = (\d+)(?=(?:(?!\[).)*\])
Demo