2016-07-07 103 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