#正则表达式和re模块 # match(pattern, string,[flag]) #在字符串开始时进行匹配 # pattern 正则表达式 # string 要匹配的字符串 # [flag] 可选标志位,用于控制匹配方式,不区分大小写等 # 匹配字符串是否以mr_开头,不区分大小写 import re pattern = r'mr_\w+' string = 'MR_Shop mr_shop' match = re.match(pattern,string,re.I) #re.I表示不区分大小写 print(match) #匹配成功返回match对象 print('匹配起始位置:',match.start()) print('匹配结束位置:',match.end()) print('匹配位置元组:',match.span()) print('要匹配的字符串:',match.string) print('匹配到的数据:',match.group()) string = '项目名称MR_SHOP mr_shop' match = re.match(pattern,string,re.I) print(match) #匹配失败返回None # 验证输入号码是否是中国移动的号码 import re pattern = r'(13[4-9]\d{8})|(147)|(15[012789]\d{8})|18[278]\d{8}' mobile_1 = '15312584698' match = re.match(pattern,mobile_1) if match == None: print(mobile_1,'不是中国移动号码') else: print(mobile_1,'是中国移动号码') mobile_2 = '15123654785' match = re.match(pattern,mobile_2) if match== None: print(mobile_2, '不是中国移动号码') else: print(mobile_2, '是中国移动号码') # re.search(pattern,string,[flag]) 搜索第一个匹配的值 import re pattern = r'mr_\w+' string = 'MR_SHOP mr_SHOP' match =re.search(pattern,string,re.I) print(match) #匹配成功返回match对象,输出匹配结果 string = '项目名称MR_SHOP mr_shop' match = re.search(pattern,string,re.I) print(match) # re.finall(pattern,string,[flag]) 匹配所有符合正则表达式的字符串 import re pattern = r'mr_\w+' string = 'MR_SHOP mr_SHOP' match =re.findall(pattern,string,re.I) print(match) #匹配成功以列表形式返回 string = '项目名称MR_SHOP mr_shop' match = re.findall(pattern,string,re.I) print(match) #模式字符串包含分组则返回匹配文本 import re pattern = r'([1-9]{3}(\.[0-9]{1,3}){3})' string_1 = '127.25.36.3 152.36.22.3' match = re.findall(pattern,string_1) #想要获取整个模式字符串的匹配,需要将模式字符串用小括号括起来 for item in match: print(item[0]) # 字符串替换 # re.sub(pattern,repl,string,count,flags) # pattern 正则表达式 # repl 要替换的字符串 # string 被查找替换的原始字符串 # count 可选参数,模式匹配后替换的最大次数,默认为0,表示替换所有 # flag 可选参数,控制匹配方式 # 替换危险字符 import re pattern = r'(黑客)|(监听)|(抓包)|(Trojan)' string = '我是一名程序员,喜欢看黑客方面的书,想研究一下Trojan' sub = re.sub(pattern,'**',string) print(sub) string = '我是一名程序员,喜欢看计算机网络方面的书,喜欢开发网站' sub = re.sub(pattern,'**',string) print(sub) # 使用正则表达式分割字符串 # re.split(pattern,string,[maxsplit],[flags]) # pattern 正则表达式 # string 匹配字符串 # maxsplit 设置最大拆分次数 # flags 标志位,控制匹配参数 # 输出被@的好友名称 import re str1 = '@扎克伯格 @马云 @俞敏洪' pattern = r'\s*@' list1 = re.split(pattern,str1) print("您@的好友:") for item in list1: if item != "": #输出不为空的元素 print(item)
来源:https://www.cnblogs.com/lelezuimei/p/11798058.html