python正則一些簡單匹配
元字元的使用
re.findall(regex,string)
功能:在string字串中,匹配regex正規表示式能夠匹配的項,放到一個列表中返回
* 普通字串
元字元 :abc
匹配規則 : 匹配字串的值
匹配示例 :abc
In [3]: re.findall('abc','abcdeabc')
Out[3]: ['abc', 'abc']
* 使用“或”進行多個匹配
元字元: re1 | re2
匹配規則:既能匹配正規表示式re1所表達內容,也能匹配 re2所表達內容
匹配示例:ab | bc --》 ab bc
In [5]: re.findall('ab|de','abcdeabc')
Out[5]: ['ab', 'de', 'ab']
* 點號 "."
元字元: .
匹配規則:匹配任意一個字元
匹配示例:f.o ――》 foo fao f@o
In [6]: re.findall('f.o','foo,f@oabfabo')
Out[6]: ['foo', 'f@o']
* 匹配開頭子串
元字元: ^
匹配規則:匹配一個字串的開頭位置
匹配示例:^From 匹配以 From 開頭的字串起始部分
In [9]: re.findall('^From','From China')
Out[9]: ['From']
In [10]: re.findall('^From','I come From China')
Out[10]: []
*匹配字串的結尾
元字元 : $
匹配規則 : 當一個字串以什麼結尾時使用$標記
匹配示例 : py$ -》 匹配所有以py結尾的字串
In [17]: re.findall('py$','test.py')
Out[17]: ['py']
In [18]: re.findall('py$','python')
Out[18]: []
* 匹配任意0個或多個字元
元字元 : *
匹配規則: 匹配前面出現的字元或正規表示式0次或者多次
匹配示例: ab* -> abbbbbbbb
In [23]: re.findall('.*','askjdfh89w4234')
Out[23]: ['askjdfh89w4234', '']
In [24]: re.findall('.*','askjdfh89w4234sdfhhg')
Out[24]: ['askjdfh89w4234sdfhhg', '']
In [25]: re.findall('ab*','a')
Out[25]: ['a']
In [26]: re.findall('ab*','abbbb')
Out[26]: ['abbbb']
* 匹配任意1個或多個字元
元字元 : +
匹配規則: 匹配前面出現的字元或正規表示式1次或者多次
匹配示例: ab+ -> abbbbbbbb
In [28]: re.findall('ab+','abbbb')
Out[28]: ['abbbb']
In [29]: re.findall('ab+','a')
Out[29]: []
* 匹配字元 0 次或1次
元字元 : ?
匹配規則:匹配前面出現的字元或正規表示式0次或1次
匹配示例: ab? --》 a 或者 ab
In [31]: re.findall('ab?','a')
Out[31]: ['a']
In [32]: re.findall('ab?','ab')
Out[32]: ['ab']
* 匹配前面的字元或re指定次數
元字元 : {N} N代表一個數字
匹配規則:匹配前面出現的字元或正規表示式N次
匹配示例: ab{3} --》 abbb
In [34]: re.findall('ab{3}','abbbbbb')
Out[34]: ['abbb']
In [35]: re.findall('ab{3}','abb')
Out[35]: []
* 匹配前面的字元或re指定次數
元字元 : {M,N} M,N代表數字
匹配規則:匹配前面出現的字元或正規表示式M 到 N次
匹配示例: ab{3,8} --》 abbb abbbbbbbb
In [36]: re.findall('ab{3,8}','abbb')
Out[36]: ['abbb']
In [37]: re.findall('ab{3,8}','abbbbbbbbbbb')
Out[37]: ['abbbbbbbb']
* 字符集合匹配
元字元 : [abcd]
匹配規則: 匹配中括號中任意一個字元
匹配示例: b[abcd]t -> bat bbt bct bdt
In [40]: re.findall('b[abc123]t','bat,b1tba3t')
Out[40]: ['bat', 'b1t']
In [41]: re.findall('[ab][cd]','acadbcbd')
Out[41]: ['ac', 'ad', 'bc', 'bd']
* 字符集合匹配
元字元 : [a-zA-Z0-9] [a-z] [0-9] [a-zA-Z] [3-8]
[b-x]
匹配規則: 匹配中括號中任意一個區間內的字元
匹配示例: [a-zA-Z0-9]+ 匹配任意一個由字母數字組 In [43]: re.findall('[a-zA-Z0-9]+','safd1324')
Out[43]: ['safd1324']
In [44]: re.findall('[a-zA-Z0-9]+','adf$&^%123')
Out[44]: ['adf', '123']
成的非空字串
* 字符集合不匹配
元字元 : [^...] ... 表示上面兩項中任意內容
匹配規則: 匹配任意非中括號中的字符集
匹配示例: [^aeiou] 匹配任意一個非aeiou字元
[^a-z] 匹配任意一個非小寫字母
In [46]: re.findall('[^a-z]','abc1j2^&d')
Out[46]: ['1', '2', '^', '&']
In [47]: re.findall('[^aeiou]','hello world')
Out[47]: ['h', 'l', 'l', ' ', 'w', 'r', 'l', 'd']
* 匹配(非)數字字元
元字元 : d [0-9] D [^0-9]
匹配規則 : d 匹配任意一個數字字元
D 匹配任意一個非數字字元
匹配示例 :d{3} --> '123'
In [49]: re.findall('d{3}','hello 1234')
Out[49]: ['123']
In [50]: re.findall('D{3}','hello 1234')
Out[50]: ['hel', 'lo ']
* 匹配(非)字母數字字元
元字元 : w [a-zA-Z0-9] W [^a-zA-Z0-9]
匹配規則 : w 匹配任意一個字母或數字字元
W 匹配任意一個非字母或數字字元
匹配示例 :w{3} --> 'a23'
In [51]: re.findall('[A-Z]w*','Hello World')
Out[51]: ['Hello', 'World']
In [52]: re.findall('w+-d+','xiaoming-56')
Out[52]: ['xiaoming-56']
* 匹配(非)空字元
元字元 : s (空格 n
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2370/viewspace-2804781/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python正則匹配中文Python
- python的re正則匹配Python
- 正則匹配規則2
- 正則匹配規則記錄
- 正則匹配數字
- grep 多行 正則匹配
- PHP 正則匹配中文PHP
- Logstash之Grok正則匹配,讓正則進階!
- Python 正則是否存在前向貪婪匹配呢?Python
- Laravel redis 正則匹配keysLaravelRedis
- Java處理正則匹配卡死(正則回溯問題)Java
- Python-網頁轉義字元及正則全文匹配Python網頁字元
- python爬蟲中使用正則match( )方法匹配目標Python爬蟲
- java中url正則regex匹配Java
- 正則匹配的捕獲組
- 正則匹配方法及示例
- apisix~路由字首的正則匹配API路由
- shell正則匹配捕獲引用進行IP匹配
- 正則匹配之零寬斷言
- 正則匹配指定字元之前的字串字元字串
- 正則匹配開頭和結尾
- php正則匹配所有違規字元PHP字元
- 「python」正則Python
- VIM-灰常有用的正則匹配
- 小技巧系列:正則匹配img標籤
- python 正規表示式匹配Python
- Python正則部分Python
- Javascript使用正則驗證身份證號(簡單)JavaScript
- 正則匹配身份證有bug你知道麼?
- 學習筆記——正則匹配方法整理筆記
- 關於正則位置匹配(斷言)的技巧
- 正則表示匹配手機IMEI機身碼
- js正則全域性匹配引發的血案JS
- MySQL全面瓦解8:查詢的正則匹配MySql
- js中split之正則運用(模式匹配)JS模式
- 探究js正則匹配方法:match和execJS
- 隨手查閱的正則匹配筆記筆記
- js Abba逆向前瞻正則匹配例項JS