您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Python-re中search()函數怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
1.首先來看一下search()和find()的區別
import re s1 = "2221155" #search 字符串第一次出現的位置 print(re.search("1",s1)) print(s1.find("1"))
它們的輸出分別是:
search():
函數返回的是查找的字符在字符串中的位置
find():
函數返回的也是在字符串中的位置
目前來看兩者并沒有什么區別,但是**search()**函數的高級操作還在后邊哦!
2.search查找ip
那么search()函數如何查找字符串中的ip地址呢來看例子
先說一種比較單一化的查找:
str1 = "192.168.111.123" ip = re.search(r"\d\d\d\.\d\d\d\.\d\d\d\.\d\d\d",str1) print(str1)
輸出結果:
這里要首先定義好ip的格式 xxx.xxx.xxx.xxx再進行查找
但是這里知道ip是沒有固定格式的,首先他的范圍是 0-255,但是他可能是1位數,二位數或者三位數,這里就需要進階了,來看下邊的代碼:
①確定單個數范圍在0-255:
re.search(r"[01]\d\d|2[0-4]\d|25[0-5]]",str)
這句代碼里邊的參數的意思是(| 為“或”):
第一位如果是0,1的話,后邊兩位隨便取值
第一位如果是2的話,那第二位就得是0到4,第三位隨意取值
第一位第二位如果是2和5的話,那么第三位只能是0到5了
這樣就能得到字符串里第一個 0-255的值
②如果要多找幾個呢?
再舉個小例子:
str2 = "192168111123" num = re.search(r"([01]\d\d|2[0-4]\d|25[0-5]){3}",str2) print(num)
運行結果:
給查找的字符在后邊加一個{n} n代表你要找幾次,看例子我找的是3次,所以最后找到的值是3個挨著的0-255的數。那么重點來啦
③找到ip
看代碼:
str_ip = "ssss192.168.1.1aaaa" ip = re.search(r"(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])",str_ip) print(i
結果:
關于“Python-re中search()函數怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。