正则表达式入门练习笔记
目录
活动地址:CSDN21天学习挑战赛
import re #导入re模块
- result=re.match('qwer','qwerty') #使用match方法进行匹配
-
- result.group() #使用group方法进行数据提取
-
- 'qwer'
- 练习1: 任意匹配一个字符
- ret=re.match(".","M")
- print(ret.group())
-
- M
-
-
- 练习2:匹配长串字符
- ret=re.match("l...","love")
- print(ret.group())
-
- love
-
-
- 练习3:选择开头匹配一个字符
- ret=re.match("[hH]","hello")
- print(ret.group())
-
- h
-
-
- 练习4:选择开头匹配一串字符
- ret=re.match("[hH]ello","Hello")
- print(ret.group())
-
- Hello
-
-
- 练习5:数字开头匹配
- ret=re.match("[0123456789]hello","6hello")
- print(ret.group())
-
- 6hello
-
-
- 练习6:有范围数字匹配
- ret=re.match("[0-36-9]hello","9hello")
- print(ret.group())
-
- 9hello
-
-
- 练习7:数字匹配
- ret=re.match("空军\d号","空军1号")
- print(ret.group())
-
- 空军1号
- import re
-
- 练习1:匹配第一个字母为大写,后面为小写且可有可无
- ret=re.match("[A-Z][a-z]*","M")
- print(ret.group())
-
- M
-
-
- 练习2:匹配一串第一个字母为大写,后面为小写且可有可无
- ret=re.match("[A-Z][a-z]*","MasRdfH")
- print(ret.group())
-
- Mas
-
-
- 练习3:判断names是否符合第一个字母为大写,小写或者下划线
- 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__ 符合要求
-
-
-
- 练习4:匹配数字
- ret=re.match("[1-9]?\d","33"):
- print(ret.group())
-
- 33
-
-
- 练习5:?????why
- ret=re.match("[1-9]?\d","09")
- print(ret.group())
-
- 0
-
-
- 练习6:匹配6位是否包含a-z,A-Z,0-9,_
- ret=re.match("[a-zA-Z0-9_]{6}","12ad45ad78ad")
- print(ret.group())
-
- 12ad45
-
-
-
- 练习7:匹配8-30位密码 包含a-z,A-Z,0-9,_,*
- ret=re.match("[a-zA-Z0-9_*]{8,30}","12ad_45ad7_8a*d66666")
- print(ret.group())
-
- 12ad_45ad7_8a*d66666
- 练习1:匹配手机号11位
- ret=re.match("^135[0-9]{8}","13566666666")
- print(ret.group())
-
- 13566666666
-
-
-
- 练习2:判断邮箱地址是否符合规定
- email_list=["xiaowang@163.com","xiaoqing@6","xialiu"]
-
- for email in email_list:
- ret=re.match("[\w]{4-20}@163\.com$",email)
- if ret:
- print("%s 符合邮件地址规定" % ret.group)
- else:
- print("%s 不符合要求" % email)
-
- xiaowang@163.com 不符合要求
- xiaoqing@6 不符合要求
- xialiu 不符合要求
- 练习1:判断数字是否小于100
- ret=re.match("[1-9]?\d$|100","8")
- print(ret.group())
-
- 8
-
-
-
- 练习2:判断邮箱是否是163或126或qq邮箱
- email_list=["a@163.com","b@qq.com","c@126.com","d@gmail.com"]
-
- for email in email_list:
- ret=re.match("[\w]{1,20}@(163|126|qq)\.com",email)
- if ret:
- print("%s 属于邮箱范围" % ret.group())
- else:
- print("%s 不属于163或126或qq邮箱" % email)
-
- a@163.com 属于邮箱范围
- b@qq.com 属于邮箱范围
- c@126.com 属于邮箱范围
- d@gmail.com 不属于163或126或qq邮箱
-
-
-
- 练习3:提取区号和电话号码
- ret=re.match("([^-]*)-(\d+)","010-123456")
-
- print(ret.group())
- print(ret.group(1))
- print(ret.group(2))
-
- 010-123456
- 010
- 123456