正則匹配多個字元

2022-07-20 15:06:15 字數 1702 閱讀 5894

匹配多個字元的相關格式

字元功能

*匹配前乙個字元出現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次 需求 匹配出,乙個字串第乙個字母為大小字元,後面都是小寫字母並...

正規表示式 匹配多個字元

功能 匹配前乙個字元出現0次或者無限次,即可有可無 匹配前乙個字元出現1次或者無限次,即至少有1次 匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有 匹配前乙個字元出現m次 匹配前乙個字元出現從m到n次 需求 匹配出乙個字串第乙個字母為大小字元,後面都是小寫字母並且這些小寫字母可 有可無 im...