V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yanwen
V2EX  ›  问与答

求助 [正则表达式] 在json里面想提取视频的下载地址,不知道怎么写。。求大家帮忙。。谢谢。。

  •  
  •   yanwen · 2013-03-13 00:16:36 +08:00 · 4377 次点击
    这是一个创建于 4273 天前的主题,其中的信息可能已经有所发展或是发生改变。
    格式如下:

    {"id":"1","title":"5oCO5LmI55SoIk9NRyI/","video_url":"http://www.demo.com/video/a4f7f94e2bdfe4c8925d770917b3cd0c.mp4","img_url":"http://www.demo.com/a4f7f94e2bdfe4c8925d770917b3cd0c.png","size":"4.2MB"},{"id":"2","title":"5Zue562U57KJ5Lid55qE6Zeu6aKY","video_url":"http://www.demo.com/video/be0fc9ff9fdc1c2d8017b9778537955a.mp4","img_url":"http://www.demo.com/img/be0fc9ff9fdc1c2d8017b9778537955a.png","size":"6.8MB"}




    想提取video_url的下载地址。。感谢感谢~
    5 条回复    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
       2013-03-13 00:19:57 +08:00   ❤️ 1
    你直接用编程语言自带的 JSON 库把这段 string 解析成 dict,然后 obj['video_url'] 就可以把这个地址拿出来了。完全没有必要用正则。
    ewangke
        2
    ewangke  
       2013-03-13 00:20:14 +08:00   ❤️ 1
    干嘛用正则表达式?
    json本身就是格式化的数据,直接用video_url作key取值比较方便
    luckyduck
        3
    luckyduck  
       2013-03-13 00:21:29 +08:00   ❤️ 1
    "video_url":"([^"]*)"
    ctrlaltdeletel
        4
    ctrlaltdeletel  
       2013-03-13 00:21:36 +08:00
    已经在json里给出了,不用自己再匹配了吧~
    Kjuly
        5
    Kjuly  
       2013-03-13 00:53:29 +08:00   ❤️ 1
    要是你非要用正则获取这些链接,就借@luckyduck补充下,在vim的insert模式下执行

    :%s/^.*o_url":"\([^"]*\)".*/\1/g

    如果所有数据都在一行里,先执行

    :%s/{"id/^M{"id/g

    让每条记录分行,注意其中 ^M 是通过 Ctr+v 然后 Enter 得到的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1029 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:22 · PVG 03:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.