Python中的正则表达式有问题

时间:2015-02-19 05:42:13

标签: python regex

更新:我用这样的代码测试了我的正则表达式:

import re

pattern = r'^data-id="*/d"$'
html='data-id="89897907"'
m=re.search(pattern,html)
print m.group()

我没有任何人。

我正在使用python编写一个web-spider,但是当我尝试使用Regular Expression来获取所有字符串时,例如“data-id =”798789“”我遇到了一个问题。 我的代码如下:

import sys
import urllib
import urllib2
import cookielib
import re
from urllib2 import Request, urlopen, URLError, HTTPError 

url="https://www.secure.pixiv.net/login.php"
#Process the cookie
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
#POST data to Pixiv
headers = {'User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0'}  
values={'mode':'login','pixiv_id':'username','pass':'password','skip':'1'}
data=urllib.urlencode(values)
req=urllib2.Request(url,data)
#ERRORS
try:    

    response = opener.open(req,timeout=10)    

except URLError, e:    

    if hasattr(e, 'code'):    

        print 'The server couldn\'t fulfill the request.'    

        print 'Error code: ', e.code    

    elif hasattr(e, 'reason'):    

        print 'We failed to reach a server.'    

        print 'Reason: ', e.reason    

else:    
    print 'No exception was raised.' 

res=opener.open('http://www.pixiv.net/ranking.php?mode=daily')  
html = res.read()
pattern = r'^data-id="*/d"$'
m=re.search(pattern,html)
print m.group()

我运行代码得到了一些没有。有什么不对吗?

1 个答案:

答案 0 :(得分:2)

  

我尝试使用正则表达式来获取所有字符串,例如“data-id =”798789“”

pattern = r'^data-id="\d*"$'

猜猜你需要这个。事实上,如果这些不是行使用的唯一内容

r'\bdata-id="\d*"' or r'\bdata-id="\d+"'

参见演示。

https://regex101.com/r/mS3tQ7/8