ech0x
V2EX  ›  问与答

关于 python 正则表达式

  •  
  •   ech0x · Mar 17, 2016 · 2516 views
    This topic created in 3734 days ago, the information mentioned may be changed or developed.

    代码如下

    attern=re.compile(r'<a href="member_illust.php?mode=medium&amp;illust_id= (\d+*)"')
    
    print re.findall(pattern,request)
    

    使用了 re 模块,想要匹配出<a href="member_illust.php?mode=medium&amp;illust_id=55836818"的 id 号,请问这里的正则表达式应该怎么写,另求好的正则表达式教程。

    10 replies    2016-03-18 09:22:01 +08:00
    UnisandK
        1
    UnisandK  
       Mar 17, 2016
    clino
        2
    clino  
       Mar 17, 2016
    建议用 kodos 调试正则
    \d+* 这里不能既用+又用*吧
    ech0x
        3
    ech0x  
    OP
       Mar 17, 2016
    @clino 是这里写错了。。。。。没注意到,谢了
    vmebeh
        4
    vmebeh  
       Mar 17, 2016
    ```attern=re.compile(r'illust_id\=(\d+)')```
    V 站会自动在英文字符周围加空格,上面没有任何空格

    illust_id 应该已经很特殊,不需要跟多关键字了
    ech0x
        5
    ech0x  
    OP
       Mar 17, 2016
    @vmebeh 对,所以我已近简化成 illust_id= (\d*)了
    ech0x
        6
    ech0x  
    OP
       Mar 17, 2016
    @vmebeh 如果要匹配这个地址 http://i3.pixiv.net/c/600x300/img-master/img/2016/03/16/01/57/24/( id 号)_p0_master1200.jpg ,正则怎么写?
    vmebeh
        7
    vmebeh  
       Mar 17, 2016
    r'img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/(\d+)_'

    不变且唯一的部分作为关键字,变化的部分用正则,需要提取的内容再加括号
    ech0x
        8
    ech0x  
    OP
       Mar 17, 2016
    @vmebeh 需要提取的内容加括号那我是不是可以写成( http://i\d.pixiv.net/c/\d+x\d+/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/(\d+)*.jpg)这样就可以提取整个网站了
    vmebeh
        9
    vmebeh  
       Mar 17, 2016
    要是匹配一条 url 有别的更好的写法,比如图片 r'( https{0,1}://.+?\.jpg)'

    Python2 自带了一个正则表达式测试工具,在安装目录的 .\Tools\Scripts\redemo.py
    附一个文档
    http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97
    wwxiong
        10
    wwxiong  
       Mar 18, 2016
    你需要用费贪婪模式的。 试试 re.compile(r'illust_id=(\d*?)')
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   911 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 19:22 · PVG 03:22 · LAX 12:22 · JFK 15:22
    ♥ Do have faith in what you're doing.