匹配多個字元的相關格式
字元功能
*匹配前乙個字元出現0次或者無限次,即可有可無
+匹配前乙個字元出現1次或者無限次,即至少有1次
?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有
匹配前乙個字元出現m次
匹配前乙個字元出現從m到n次
需求:匹配出,乙個字串第乙個字母為大小字元,後面都是小寫字母並且這些小寫字母可有可無
#coding=utf-8
import re
ret = re.match("[a-z][a-z]*","m")
print(ret.group())
ret = re.match("[a-z][a-z]*","mnnm")
print(ret.group())
ret = re.match("[a-z][a-z]*","aabcdef")
print(ret.group())
執行結果:
m
mnnaabcdef
需求:匹配出,變數名是否有效
#coding=utf-8
import re
names = ["name1", "_name", "2_name", "__name__"]
for name in names:
ret = re.match("[a-za-z_]+[\w]*",name)
if ret:
print("變數名 %s 符合要求" % ret.group())
else:
print("變數名 %s 非法" % name)
執行結果:
變數名 name1 符合要求
變數名 _name 符合要求
變數名 2_name 非法
變數名 __name__ 符合要求
需求:匹配出,0到99之間的數字
#coding=utf-8
import re
ret = re.match("[1-9]?[0-9]","7")
print(ret.group())
ret = re.match("[1-9]?\d","33")
print(ret.group())
ret = re.match("[1-9]?\d","09")
print(ret.group())
執行結果:
7
330 # 這個結果並不是想要的,利用$才能解決
需求:匹配出,8到20位的密碼,可以是大小寫英文本母、數字、下劃線
#coding=utf-8
import re
ret = re.match("[a-za-z0-9_]","12a3g45678")
print(ret.group())
ret = re.match("[a-za-z0-9_]","1ad12f23s34455ff66")
print(ret.group())
執行結果:
12a3g4
1ad12f23s34455ff66
正則 多個字元匹配
正規表示式 二 匹配多個字元 元字元 量詞符號 import re 1 匹配0個或者1個a print re.findall a?b abbzab abb aab 2 匹配1個或者多個a print re.findall a b b ab aaaaaab abb 3 匹配0個或者多個a print ...
正則匹配多個字元
匹配多個字元的相關格式 字元功能 匹配前乙個字元出現0次或者無限次,即可有可無 匹配前乙個字元出現1次或者無限次,即至少有1次 匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有 匹配前乙個字元出現m次 匹配前乙個字元出現從m到n次 需求 匹配出,乙個字串第乙個字母為大小字元,後面都是小寫字母並...
匹配單個字元
在上一小節中,了解到通過re模組能夠完成使用正規表示式來匹配字串 本小節,將要講解正規表示式的單字元匹配 字元功能 匹配任意1個字元 除了 n 匹配 中列舉的字元 d匹配數字,即0 9 d匹配非數字,即不是數字 s匹配空白,即 空格,tab鍵 s匹配非空白 w匹配單詞字元,即a z a z 0 9 ...