2016-07-07 104 views
0

re模块我快snippest这样的:关于蟒蛇

p = re.compile(b'^((?!-)[*A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$') 
m = p.match(domain) 

“域”是将IP地址从谷歌DNS获取。我知道有一些错误解码,所以我试图编码正则表达式对其进行编译后,但仍得到这样的错误通知,

Traceback (most recent call last): 
File "D:\python34\lib\threading.py", line 921, in _bootstrap_inner 
self.run() 
File "update.py", line 101, in run 
    if validate_domain(domain): 
File "update.py", line 182, in validate_domain 
    m = pattern.match(domain) 
TypeError: can't use a bytes pattern on a string-like object 

能给我一些提示,这种情况

!的编程语言:Python的3.4

+2

摆脱'B'对于给定的错误消息,在谷歌 – Sayse

+0

第一个链接为[复制](HTTP://计算器.com/q/5184483/1324033) – Sayse

+0

你使用'b'''而不是'r'''的任何理由? – robert

回答

1

追加一个b您模式的开始使得bytes对象。但是你不能用字节模式匹配字符串对象。错误是很清楚的:

p = re.compile(b'^((?!-)[*A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$') 
#   ^

你可能打算用r''

+1

为什么这是downvoted?我会说同样的事情。 – patrick