Python學習筆記(2018.01.30/31)

正則表達式:

在正則表達式中,[]表示滿足括號中任一字符。比如“[hi]”,它就不是匹配“hi”了,而是匹配“h”或者“i”

“\b”在正則表達式中表示單詞的開頭或結尾,空格、標點、換行都算是單詞的分割。而“\b”自身又不會匹配任何字符,它代表的只是一個位置。(\bs表示以s開頭,e\b表示以e結尾)

正則表達式裏加上了“r”,就表示不要去轉義字符串中的任何字符,保持它的原樣

re.findall(r"hi", text)

re是python裏的正則表達式模塊。findall是其中一個方法,用來按照提供的正則表達式,去匹配文本中的所有符合條件的字符串

“.”在正則表達式中表示除換行符以外的任意字符,“\S”,它表示的是不是空白符的任意字符(意思不要空格)。注意是大寫字符S。“?”表示任意一個字符,“*”表示任意數量連續字符,這種被稱爲通配符。“*”在匹配時,會匹配儘可能長的結果。如果你想讓他匹配到最短的就停止,需要用“.*?”。這種匹配方式被稱爲懶惰匹配,而原本儘可能長的方式被稱爲貪婪匹配。

在正則表達式中,任意字符是用“.”表示,而“*”則不是表示字符,而是表示數量:它表示前面的字符可以重複任意多次(包括0次),只要滿足這樣的條件,都會被表達式匹配上。


1.

我們已經瞭解了正則表達式中的一些特殊符號,如\b、\d、.、\S等等。這些具有特殊意義的專用字符被稱作“元字符”。常用的元字符還有:


\w - 匹配字母或數字或下劃線或漢字(我試驗下了,發現3.x版本可以匹配漢字,但2.x版本不可以)

\s - 匹配任意的空白符

^ - 匹配字符串的開始

$ - 匹配字符串的結束


2.

\S其實就是\s的反義,任意不是空白符的字符。同理,還有:


\W - 匹配任意不是字母,數字,下劃線,漢字的字符

\D - 匹配任意非數字的字符

\B - 匹配不是單詞開頭或結束的位置


[a]的反義是[^a],表示除a以外的任意字符。[^abcd]就是除abcd以外的任意字符。

3.

之前我們用過*、+、{}來表示字符的重複。其他重複的方式還有:

? - 重複零次或一次

{n,} - 重複n次或更多次

{n,m} - 重複n到m次

^1\d*x?    以1開頭的一串數字,數字結尾有字母x,也可以沒有。有的話就帶上x

^\w{4,12}$    這個表示一段4到12位的字符,包括字母或數字或下劃線或漢字,可以用來作爲用戶註冊時檢測用戶名的規則。(但漢字在python2.x裏面可能會有問題)


搜索 (indexfind 和 count)、替換 (replace) 和解析 (split)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章