2012-05-10 38 views
1

我有以下幾點:
比賽蟒蛇正則表達式的網址完全

rule = "http://www.abc.com/" 
test = "http://www.abc.com/test" 
print(str(re.compile(rule).match(test))) 

我想這對輸出無,而是它返回匹配。如何更改規則變量,以便正則表達式返回None?

+0

你需要在規則中逃避你的時期。如果你不這樣做,像'「http:// www3abc3com /」'可能會匹配。至少我這麼認爲......但我可能是錯的。但試試看吧。 – moowiz2020

+0

使用'^'和'$'包裝正則表達式並避開點 –

+0

嘗試製作規則=「^ http:// www \ .abc \ .com/$」但仍然沒有運氣。我錯過了什麼?編輯:從來沒有,修復它 –

回答

2

^字符匹配字符串的開頭,$匹配字符串的末尾。所以,你會想:

rule = "^http://www\.abc\.com/$" 
test = "http://www.abc.com/test" 
print(str(re.compile(rule).match(test))) 

注意.意味着「匹配任何字符」所以,如果你想匹配的實際.你需要收到\

+0

只是好奇,是必要的,因爲python的比賽自動開始在字符串的開始? –

+0

是的,你是對的。如果你使用的是匹配,這是沒有必要的。如果您使用搜索而不是匹配,那麼它是必要的。 –

2

如果你想比較完整的字符串,我不認爲你需要這裏的正則表達式。如果我誤解了你,請糾正我。 :)

可能是這個代碼將uesful:

rule = "http://www.abc.com/" 
test = "http://www.abc.com/test" 
print(rule == test) 

返回False如果字符串不同,True否則。

+0

當然,我可以檢查平等,但不幸的是,我確實需要在這種情況下的正則表達式:) –