搜尋字串,傳回一個符合結果的迭代類型,每個迭代元素是match物件 |
| #>>> match= re.findall(r'[1-9]\d{5}','100081BIT BIT10008676')>>> print(match)
['100081', '100086']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676')>>> match
['', 'BIT BIT', '76']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676',maxsplit=1)>>> match
['', 'BIT BIT10008676']
>>>for m in re.finditer(r'[1-9]\d{5}','100081BIT BIT10008676'): if m:
print(m.group(0))
100081100086
re.match與re.search的區別
re.match只符合字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函數傳回None;而re. search匹配整個字串,直到找到一個匹配。
運算子 |
說明 |
實例 |
|
|
|
|
|
|
|
##. |
表示任何單一字元
|
| [ ] | #字元集,單一字元取值範圍
[abc]表示a或b或c; [a-z]表示a到z單一字元
|
[^ ] | 非字元集,單一字元排除範圍 |
[^abc]表示非a或非b或非c
| #*
前一個字元的0次或無限次擴展 |
#abc* | 表示ab、abc、abcc、abccc...
| +
前一個字元的1次或無限次擴充 |
abc+ | 表示abc 、abcc、abccc...
| ?
前一個字元的0次或1次擴充 |
abc? | 表示ab、abc
| |
#左右表示任一個 |
abc|def | 表示abc或def
| {m}
前一個字元的m次擴充 | ##ab{ 2}表示 | abcc
|
{m,n}
前一個字元的m至n次擴充(含n) |
| ab{1,2}表示abc、abcc
|
#^ | ##符合字串開頭 |
^abc表示abc且在一個字串的開頭
| #$
符合字串結尾 |
abc$ | 表示abc且在一個字串的結尾
|
( )
#分組標記,內部只能使用|運算子 |
| (abc|def)表示 abc或def |
#\d
##數字,等價於[0-9]
\w
單字字符,等價於[A-Za-z0-9_]
如果熟悉上面的運算子的話,下面的例子就不難了。 1.只能輸入數字:^[0-9]*$
2.只能輸入n位的數字:^\d{n}$
3.只能輸入至少n位的數字:^\d{n,}$ |
4.只能輸入m~n位的數字:^\d{m,n}$ |
#5.只能輸入零和非零開頭的數字:^(0|[1-9][0-9]*)$
6.只能輸入有兩位小數的正實數:^[0-9]+(.[0-9]{2})?$
7.只能輸入有1~3位小數的正實數:^[0-9]+( .[0-9]{1,3})?$ |
8.只能輸入非零的正整數:^+?[1-9][0-9]*$ |
【Python3正規表示式】 |
|
函數
|
|
re.match() |
從字串的起始位置配對一個模式,如果起始位置符合不成功的話,match()就回傳none。 |
re.search() |
掃描整個字串並傳回第一個成功的匹配。 |
re.sub() |
用於取代字串中的所有符合正規表示式的子字串,傳回替換後的字串 |
#re.findall()搜尋字串,以列表形式傳回全部能匹配的子字串
re.split()
將字串依照正規表示式比對結果切割,傳回清單
#re.finditer()
搜尋字串,傳回一個符合結果的迭代類型,每個迭代元素是match物件
>>> match= re.findall(r'[1-9]\d{5}','100081BIT BIT10008676')>>> print(match)
['100081', '100086']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676')>>> match
['', 'BIT BIT', '76']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676',maxsplit=1)>>> match
['', 'BIT BIT10008676']
>>>for m in re.finditer(r'[1-9]\d{5}','100081BIT BIT10008676'): if m:
print(m.group(0))
100081100086
re.match與re.search的區別re.match只符合字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函數傳回None;而re.search匹配整個字串,直到找到一個匹配。
###############相關推薦:#########關於js正規表示式詳解###########php正規則表達式詳解_PHP教學############非常重要的php正規表示式詳解,php正規表示式詳解######