1、只匹配字串中的英文本母
>>> import re
>>> mys1 = "123456"
>>> mys2 = "123abc"
>>> mys3 = "abc123"
>>> mys4 = "abcdef"
>>> myl = [mys1, mys2, mys3, mys4]
>>> for s in myl:
res = re.findall(r"[a-za-z]+", s)
print res
['abc']
['abc']
['abcdef']
注:同時也可以利用此來判斷某字串是否純由數字所組成的,即如果返回結果為空列表時
2、只匹配字串中的數字
>>> for s in myl:
res = re.findall(r"[0-9]+", s)
print res
['123456']
['123']
['123']
注:同樣地也可以用來判斷某字串是否由純字母所組成, 即如果返回結果為空列表時
3、匹配字串中的字母和數字
>>> for s in myl:
res = re.findall(r"[0-9a-za-z]+", s)
print res
['123456']
['123abc']
['abc123']
['abcdef']
4、正規表示式常用的符號和字元
由於 csdn 的**太難看了,故使用 markdown 來編輯生成**
詳見:正規表示式常用的符號和字元
5、但是經過上面的字元學習後,我們判斷某字串是否由純數字或純字母所組成時,可以寫成如下的方式:
>>> for s in myl:
res = re.findall(r"^[0-9]+$", s)
print res
['123456']
>>> for s in myl:
res = re.findall(r"^[a-za-z]+$", s)
print res
['abcdef']
是 5 的方法好,還是 1 的方法好,個人覺得, 1 的方法的取巧性太強,在閱讀**時不夠直觀,而 5 的方法更加符合我們的一般思維,更容易理解,故 5 的方法更好。同樣地
6、正規表示式函式與方法:
search(pattern, string, flags=0):在字串 string 中查詢正規表示式模式 pattern 的第一次出現,flags 是可選識別符號,如果匹配成功,則返回乙個匹配物件,否則返回 none
注:可以通過 result.group() 來訪問返回結果內容
finditer(pattern, string[,flags=0]) :和 findall() 相同,但返回的不是列表而是迭代器,對於每個匹配,該迭代器返回乙個匹配物件
python正規表示式學習
今天學習了python中有關正規表示式的知識。關於正規表示式的語法,不作過多解釋,網上有許多學習的資料。這裡主要介紹python中常用的正 則表示式處理函式。re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import re text jgood is a handso...
python正規表示式學習
python 中的re 模組 正規表示式 就個人而言,主要用它來做一些複雜字串分析,提取想要的資訊 學習原則 夠用就行,需要的時候在深入 現總結如下 正規表示式中特殊的符號 表任意字元 表string起始 表string 結束 跟在字元後面表示,0個 多個,1個 多個,0個或者1個 符合條件的情況下...
python學習 正規表示式
1,d可以匹配乙個數字,w可以匹配乙個字母或數字 00 d 可以匹配 007 但無法匹配 00a d d d 可以匹配 010 w w d 可以匹配 py3 2,可以匹配任意字元 py.可以匹配 pyc pyo py 等等。3,表示任意個字元 包括0個 用 表示至少乙個字元,用?表示0個或1個字元,...