我想匹配一個簡化版本的IP地址(我相信這個模式應該匹配所有IP地址,然後是一些不是IP地址的東西,但這並不重要) m在Python中使用此語法:使用正則表達式匹配ip地址
'([0-9]{1,3}\.){3}[0-9]{1,3}'
但是,例如,它匹配「127.」。據我所知,它將我提供的模式解釋爲模式列表,而不是單一模式。我錯過了什麼?
更新:是的,抱歉,大家,我有一個錯字。我修好了它。
大家都說這種模式是完美的,但我沒有得到。也許我的問題在於其他方面:。
matches = regex.findall(line)
for match in matches:
matchList.add(label + match)
如果我使用模式 '(' \ d {1,3} \ d {1,3} \ d {1,3} \ d {1, 3}'代替(同樣的東西,我只是重複,這個作品完美,並提供了一個完整的IP地址。但是,如果我使用上面的模式,它會給'195.'
如果我把paren放在這個表達式((\ d {1,3}。){3} \ d {1,3})',label + match給我錯誤'不能連接字符串和元組對象'
請參閱http://stackoverflow.com/questions/106179/regular-expression-to-match-hostname-or-ip-address以獲取有效的IP正則表達式。 – garnertb 2011-05-18 11:18:32
我認爲你在那個正則表達式中有一個錯字。你的意思是([0-9] {1,3} \。){3} \。[0-9] {1,3}? – cwallenpoole 2011-05-18 11:19:07