import re str1 = 'sddf3gwrw' r = re.match('\d',str1) #匹配单个数字 print(r) r = re.search('\d',str1) print(r) print(r.group()) str1 = 'sddf3g889wrw' r = re.match('\d+',str1) print(r) str1 = 'sddf3999g889wrw' r = re.search('\d+',str1) # 匹配连续多个数字 print(r) str1 = 'sddf3g889wrw' r = re.match('\d*',str1) #匹配0个或者多个连续数字,没有匹配到数字,返回空字符串"" print(r) str1 = 'sddf3g889wrw' r = re.search('\d{2}',str1) # 匹配2个数字 print(r) str1 = 'sddf3g88967wrw' r = re.search('\d{2,4}',str1) # 匹配2-4个数字 print(r) str1 = 'sddf3g88967wrw' r = re.search('\d{2}|\d{4}',str1) # 匹配2个或4个数字 print(r) str1 = 'sddf3g88967wrw' r = re.search('\D{2}|\d{4}',str1) # 匹配2个非数字或4个数字 print(r) str1 = 'sddf3g88967wrw' r = re.search('[a-z]{2}|\d{4}',str1) # 匹配2个小写字母或4个数字 print(r) str1 = 'sddf3g88967wrw' r = re.search('[0-9]{2}|\d{4}',str1) # 匹配2个数字或4个数字 print(r) str1 = '37sddf3g88967wrw' r = re.search('^[0-9]+',str1) # 从字符串起始位置匹配1个或多个数字,即字符串以数字开头 print(r) str1 = '37sddf3g88967wrw' r = re.search('[^0-9]+',str1) # 匹配1个或多个非数字,[^0-9]表示非数字 print(r) str1 = '37sddf3g88967wrw9' r = re.search('[0-9]+$',str1) # 匹配字符串最后1个或多个非数字,即字符串以1个或多个数字结尾 print(r) str1 = '37s ddf3g88967wrw9' r = re.search('\s',str1) # 匹配换行符、tab符、空格等空白字符 print(r) # 使用正则表达式判断字符串是否IP地址 ip = '192.168.99.99' zhengze = '^((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])$' r = re.match(zhengze,ip) print(r) str1 = '37sddfPYthon67wrw9' r = re.compile('[Pp][Yy]thon') # 匹配Python或python s = r.search(str1) print(s) # findall(),查找字符串中符合正则的字符串,返回列表 str1 = '37sddfPYthon-67wrw9' n_list = re.findall('\d+',str1) print(n_list) str1 = '37sddfPYthon-67wrw9' n_list = re.findall('\d+|-\d+',str1) #查找正数或负数 print(n_list) str1 = '37sd**dfPYth&&on-67w$$rw9' n_list = re.findall('\W+',str1) #查找非数字非英文 print(n_list) str1 = '37sd**dfPYth&&on-67w$$rw9' n_list = re.findall('[pP]ython',str1) #匹配不到字符串返回空列表 print(n_list) str1 = '37sd**dfPYth&&on-67w$$rw9' new_str = re.sub('\W+',"",str1) #将非数字非英文替换为空 print(new_str) str1 = 'sdfwe23df23568swg' new_str = re.sub('\d+','***',str1) print(new_str) #split(),按照正则表达式分隔字符串 str1 = 'sd;fwe:,re.tr' s_list = re.split('[;:.,]+',str1) print(s_list) s_list = re.split('\W+',str1) print(s_list) s_list = re.split('[^a-z]+',str1) print(s_list) str1 = 'sd;fwe:,re.tr' s_list = re.findall('[^;:.,]+',str1) print(s_list) # 重点正则表达式: (.+?),可以提取两个字符串之间的字符串 str1 = 'sdfglweeryrtlyuru' s_list = re.findall('gl(.+?)r',str1) # 提取str1字符串中 gl和ry之间的字符串 print(s_list) str1 = 'sdfglweeryrtlyuru' s_list = re.findall('gl(.+)',str1) # 提取str1字符串中 gl后面所有字符 print(s_list) str1 = 'sdfglweeryrtlyuru' s_list = re.findall('(.+)ly',str1) # 提取str1字符串中 ly之前所有字符 print(s_list)
Python正则提取字符串
最新推荐文章于 2024-05-13 14:54:22 发布