A. python中匹配ip的正則表達式 如果我要匹配192.168.*.*的網段呢 新手求教!!
importre
reg=re.compile(r"(?<![0-9.])((2[0-4][0-9]|25[0-5]|[01]?[0-9]{1,2}).){3}(2[0-4][0-9]|25[0-5]|[01]?[0-9]{1,2})(?![0-9.])")
(?<![0-9.])((2[0-4][0-9]|25[0-5]|[01]?[0-9]{1,2}).){3}(2[0-4][0-9]|25[0-5]|[01]?[0-9]{1,2})(?![0-9.])
從文本中匹配ip的正則表達式
importre(?<![d.])192.168(.(2[0-4]d|25[0-5]|[01]?d{1,2})){2}(?![d.])
reg=re.compile(r"(?<![d.])192.168(.(2[0-4]d|25[0-5]|[01]?d{1,2})){2}(?![d.])")
在文本中匹配 192.168網段的正則表達式
B. 從零開始學Python爬蟲(四):正則表達式
Regular Expression, 正則表達式, 種使 表達式的 式對字元串進 匹配的語法規則。
我們抓取到的 源代碼本質上就是 個超 的字元串, 想從 提取內容。 正則再合適不過了。
正則的優點: 速度快, 效率 , 准確性 正則的缺點: 新 上 難度有點 。
不過只要掌握了正則編寫的邏輯關系, 寫出 個提取 內容的正則其實並不談旦復雜
正則的語法: 使 元字元進 排列組合 來匹配字元串
在線測試正則表達式網址:
https://tool.oschina.net/regex/
元字元: 具有固定含義的特沖旦殊符號 常 元字元:
量詞: 控制前 的元字元出現的次數
貪婪匹配和惰性匹配
這兩個要著重的說 下,因為我們寫爬 的最多的就是這個惰性匹配。
先看案例
那麼接下來的問題是, 正則我會寫了, 怎麼在python程序中使 正則呢?答案是re模塊
re模塊中我們只需要記住這么 個功能就 夠我們使 了。散侍擾
下面一個案例,是練慣用正則表達式提取豆瓣電影top250的數據並保存,一起來學一下吧。
C. python怎麼做讓正則只匹配輸出url中的域名
代碼如下(下方源代碼部分url為空,請自行添加任意地址測試):
import re
url = ""
pattern = r'//(.+?)/'
domain = re.search(pattern,url).group(1)
print(domain)
D. python怎麼樣使用正則表達式匹配用戶輸入的為文件路徑 就譬如像: E:\index.ph
你好:
正則表達式語法:
##總結
##^匹配字元串的開始。
##$匹配字元串的結尾。
##匹配一個單詞的邊界。
##d匹配任意數字。
##D匹配任意非數字字元。
##x?匹配一個可選的x字元(換言之,它匹配1次或者0次x字元)。
##x*匹配0次或者多次x字元。
##x+匹配1次或者多次x字元。
##x{n,m}匹配x字元,至少n次,至多m次。
##(a|b|c)要麼匹配a,要麼匹配b,要麼匹配c。
##(x)一般情況下表示一個記憶組(rememberedgroup)。你可以利用re.search函數返回對
##象的groups()函數獲取它的值。
##正則表達式中的點號通常意味著「匹配任意單字元」
E. 請教Python中匹配IP的正則表達式
下面是IPv4的IP正則匹配表達式
importre
#簡單的匹配給定的字元串是否是ip地址,下面的例子它不是IPv4的地址,但是它滿足正則表達式
ifre.match(r"^(?:[0-9]{1,3}.){3}[0-9]{1,3}$","272.168,1,1"):
print"IPvaild"
else:
print"IPinvaild"
#精確的匹配給定的字元串是否是IP地址
ifre.match(r"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$","223.168.1.1"):
print"IPvaild"
else:
print"IPinvaild"
#簡單的從長文本中提取中提取ip地址
string_ip="isthis289.22.22.22ip?
result=re.findall(r"(?:[0-9]{1,3}.){3}[0-9]{1,3}",string_ip)
ifresult:
printresult
else:
print"recannotfindip"
#精確提取IP
result=re.findall(r"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",string_ip):
ifresult:
printresult
else:
print"recannotfindip"
下面是IPv6的正則匹配表達式
string_IPv6="1050:0:0:0:5:600:300c:326b"
#匹配是否滿足IPv6格式要求,請注意例子里大小寫不敏感
ifre.match(r"^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$",string_IPv6,re.I):
print"IPv6vaild"
else:
print"IPv6invaild"
#提取IPv6,例子里大小寫不敏感
result=re.findall(r"(?<![:.w])(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}(?![:.w])",string_IPv6,re.I)
#列印提取結果
printresult