yanwen
V2EX  ›  问与答

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

  •  
  •   yanwen · Mar 13, 2013 · 4938 views
    This topic created in 4830 days ago, the information mentioned may be changed or developed.
    格式如下:

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

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

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

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

    让每条记录分行,注意其中 ^M 是通过 Ctr+v 然后 Enter 得到的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5871 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 93c8b4a0 · 35ms · UTC 06:31 · PVG 14:31 · LAX 23:31 · JFK 02:31
    ♥ Do have faith in what you're doing.