Python - re.search - re.compile

时间:2018-01-22 04:33:16

标签: python python-2.7 string-parsing

我是新手,仍然试图让解析工作正常。有什么建议。

import urllib2
import re

## Open Connection ##
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
oururl = opener.open('http://www.ip-lookup.net')

## IP Addresss finder ##
theIP = re.compile(r"d{1,3}.d{1,3}.d{1,3}.d{1,3}")
ip = re.search(theIP, str(oururl))

## Country finder ##
roughCountry = re.compile('([A-Z]\w+)( [A-Z]\w+){0,2}(?=\<\/a\>\s\s)')
Country = re.search(roughCountry, str(oururl))

## Print out ##
print "Your IP is:", ip
print "Your Country is:", Country

1 个答案:

答案 0 :(得分:1)

您忘记了theIP和点中数字前面的反斜杠。 d{1,3}.d{1,3}.d{1,3}.d{1,3}匹配dd.dddxdd(ddd之类的内容。你试图实现的正则表达式是\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

但要小心,这也会匹配ips,如923.234.512.235,这显然允许大于255的数字。对于限制为0-255的nubers的正则表达式,只需尝试谷歌。 ip regex上有一百万个例子。例如。看看herehere