全球短讯!基础:正则表达式方便理解

2022-09-29 15:21:06来源:互联网  


(相关资料图)

# 导入re模块import re# re.match(正则表达式,需要处理的字符串)ret = re.match(r"hello" ,"hello world")print(ret)
# [] 判断中括号数据# .*  点:任意   * ret = re.match(r"[12345678].*", "4速度与激情") print(ret)
[] 匹配[]中列的字符 \d 匹配(0,9)数字\w 匹配单词字符 \s 匹配空格\D 小的相反\S 小的相反\W 小的相反. 等价任意1个(除了\n)匹配多个字符串:问号/大括号/星号/点匹配反斜\n\d{1,2} 匹配来约束定义是数,如:手机号:* 匹配任意个数,即可有可无{} 约束个数“”“”“” 匹配所用不换行+ 匹配前一个字符出现1次或者无限次,即至少有1次?匹配前一个字符出现1次或者0,即至少有1次,要么没有{m} 匹配就一个字符出现 m次 {m,n} 匹配就一个字符出现 m次到次注意:/n 不能匹配re.S 想匹配需要加^$ 从头匹配到屋| 或(左右一边)(ab) 将括号中的字符作为一个分组\nam 引用分组num匹配到的字符串(?P<name>)  分组起名 (?P=name)  引用别名为name分组匹配到的字符串match 匹配从头开始search (位置不定)匹配字符串:sub  替换多个 注意:必须返回字符串  findall  返回列表splist  切割字符串+? 变非贪婪*? 变非贪婪?? 变非贪婪{1,3}? 变非贪婪
ret = re.match(r".*[1-8]", "速度与激情8") print(ret)
# 中括号也可以字母ret = re.match(r".*[1-8a-zA-Z]", "速度与激情D") print(ret)
# {}大括号约束定义是数:如手机号ret = re.match(r"\d{11}", "13971052605") print(ret)
# {}大括号约束定义是数:如手机号# 匹配电话号码是否正确ret = re.match(r"027-?\d{8}", "027-65503097") print(ret)
# {}大括号约束定义是数:如手机号# 匹配电话号码是否正确# 如果是7,8位的电话号码,如下:ret = re.match(r"\d{3,4}-?\d{7,8}", "0270-65503097") print(ret)
# .* 匹配所有字符串 # 结果:为什么dfsdfsdfsdf是这个结果?a = """dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdgdfhgfhsgddsfaffasf"""ret = re.match(r".*", a)print(ret)
# 想匹配需要加  re.Sa = """dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdgdfhgfhsgddsfaffasf"""ret = re.match(r".*", a,re.S )print(ret)
#匹配出,变量名是否有效names = ["name1", "_name", "2_name", "__name__"]for k in names:    ret = re.match(r"[a-zA-Z_][a-zA-Z_0-9]*",k)    if ret:        print("变量名 %s 符合要求%s" % (k,ret.group()))    else:        print("变量名 %s 非法"%k)# 变量名 name1 符合要求name1# 变量名 _name 符合要求_name# 变量名 2_name 非法# 变量名 __name__ 符合要求__name__
#匹配出,变量名是否有效# ^ $ 从头匹配到屋names = ["name1", "_name", "2_name", "__name__"]for k in names:    ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)    if ret:        print("变量名 %s 符合要求%s"%(k,ret.group()))    else:        print("变量名 %s 非法"%k)
#匹配出,变量名是否有效# ^ $ 从头匹配到屋names = ["name1", "_name", "2_name", "__name__"]for k in names:    ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)    if ret:        print("变量名 %s 符合要求%s"%(k,ret.group()))    else:        print("变量名 %s 非法"%k)# 变量名 name1 符合要求name1# 变量名 _name 符合要求_name# 变量名 2_name 非法# 变量名 __name__ 符合要求__name__
# 匹配多个邮箱地址,如:126,qq,.....email = input("请输入邮箱地址:")ret = re.match(r"[a-zA-Z_0-9]{4,20}@(163|126|qq)\.com$\.com$", email)if ret:    print("%s符合"% email)else:    print("%s不符合"% email)# 请输入邮箱地址:15088842598@163.comcom# 15088842598@163.comcom不符合
这里写代码片

相关阅读

精彩推荐

相关词

推荐阅读