匹配多個字元

2022-09-03 17:21:11 字數 1702 閱讀 4693

匹配多個字元的相關格式

字元功能

*匹配前乙個字元出現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 ...