91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python正則表達式的技巧有哪些

發布時間:2021-11-25 11:20:16 來源:億速云 閱讀:153 作者:iii 欄目:互聯網科技

本篇內容介紹了“python正則表達式的技巧有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

最小匹配

格式

量詞?

注:量詞有{n,m}、?、+、*

用處

在字符串中查找符合正則表達式規則的最短子字符串。

案例

現有字符串num = ”10-3*(20-10+(-10/5)27/3/3-(-100)/(10-35))",要提取括號中的內容。

import re

num = '10-3*(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))+(-5*-6)'num2 = re.findall('\(.+?\)', num)num3 = re.findall('\(.+\)', num)print(num2)print(num3)out:['(20-10+(-10/5)', '(-100)', '(10-3*5)']['(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))']

上述代碼中num2使用了最小匹配,而num3使用了默認的最大匹配。

請注意num2的正則表達式:

.表示匹配除了換行符之外的所有字符

+表示一個或多個

?表示最小匹配,匹配后面第一個)即返回結果。若沒有這個?會匹配到最后一個)才返回結果。

分組

格式

(\w)

注:在正則表達式中一對括號包圍的內容表示分組,正則表達式中可以有多個分組

用處

匹配字符串,只提取分組中的內容,非分組的內容舍棄不提取。

案例

str1 = '''
<a>python<a>
<b>java<b>
<c>javascript<c>
'''result1 = re.findall('<\w+>(\w+)<\w+>',str1)print(result1)result2 = re.findall('<(\w+)>\w+<\w+>',str1)print(result2)out:['python', 'java', 'javascript']['a', 'b', 'c']

從result1和result2提取內容的不同可以看到分組的妙用,分組能指定提取符合正則表達式某一段的內容。

分組隱藏

格式

(?:正則表達式)

注:在括號內以?:開頭的分組,匹配到的內容會被隱藏。

另:分組隱藏和分組命名不能同時使用。

用處

當有用數據和無用數據混在一起時,只能先全取出來,然后對無用數據做分組隱藏,把有用的數據對應的正則表達式用()包起來,這樣即可提取出有用數據。

案例

result1 = re.findall('1(\d)(\d)','167189')print(result1)result2 = re.findall('1(?:\d)(\d)','167189')print(result2)out:[('6', '7'), ('8', '9')]['7', '9']

分組命名

格式

(?P<名字>正則表達式)

注:?P<名稱>,英文書名號內是分組的名稱。

用處

分組命名在有很多段分組時對不同的分組命名,便于使用,防止混淆。

案例

str1 = '<tag>study python every day</tag>'ret = re.search('<(?P<tag>\w+)>(?P<name>.*?)</(?P=tag)>',str1)print(ret)print(ret.group('tag'))print(ret.group('name'))out:tag
study python every day

上述案例是一個簡單的示范,只有2個分組。但實際爬蟲的時候經常會遇到多達10個以上的分組。在分組數量多的時候很容易混淆數據,若使用分組命名會非常方便,根據名字讀取對應的數據,提高了代碼可讀性。

“python正則表達式的技巧有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

儋州市| 汶上县| 昌图县| 洛南县| 江达县| 印江| 浦北县| 禹州市| 清徐县| 柞水县| 鞍山市| 叙永县| 康乐县| 苏州市| 县级市| 柏乡县| 漳州市| 汝南县| 得荣县| 贡觉县| 徐闻县| 隆安县| 天门市| 合山市| 新建县| 乌海市| 汾西县| 且末县| 汤阴县| 濮阳市| 清水河县| 游戏| 色达县| 霍林郭勒市| 和硕县| 安化县| 加查县| 张家口市| 遂宁市| 浮山县| 沈丘县|