操作符 . 表示任何单个字符 [] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a-z单个字符 [^] 非字符集。对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 * 前一个字符的0次或者无限次的扩展 abc*表示ab、abc、abcc、abcccc等等 + 前一个字符的1次或者无限次的扩展 abc+表示 abc、abccc、abcc、abccccc等 ? 前一个字符的0次或者1次扩展 abc?表示 ab、abc | 左右表达式中的任意一个 abc|def表示abc、def {m} 扩展前一个字符m次 ab{2}c表示abbc {m,n} 扩展前一个字符m至n次(含n) ab{1,2}c表示abc、abbc ^ 匹配字符串开头 ^abc表示abc在一个字符串的开头 $ 匹配字符串结尾 abc$表示abc在一个字符串的结尾 () 分组标记内部只能使用|操作符 (abc)表示abc ,(abc|def)表示abc、def \d 数字,等价于[0-9] \w 单词字符,等价于[A-Za-z0-9_] 表示字符小写大写的a-z 和数字0-9以及下划线_ ^-?\d+$ 整数形式的字符串 ^[0-9]*[1-9][0-9]*$ 正整数形式的字符串 [1-9]\d{5} 中国境内邮政编码,6位 [\u4e00-\u9fa5] 匹配中文字符 \d{3}-\d{8}|\d[4]-\d{7} \d+.\d+.\d+.\d+ --> IP地址 低配版 \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} --> 中配版 0-99 100-199 200-249 250-255 [1-9]?\d 1\d{2} 2[0-4]\d 25[0-5] ([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5].){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]) -->匹配ip地址(完整版)
看不清文本,请复制后到文本中观看,谢谢合作!
python中re使用最小匹配操作符
*?前一个字符0次或无限次扩展,最小匹配
+?前一个字符1次或无限次扩展,最小匹配
??前一个字符0次或一次的扩展,最小匹配
{m,n}? 扩展前一个字符m至n次(含n),最小匹配
python中re语法
import re #在一个字符串中搜索匹配正则表达式的第一个位置返回match对象 match = re.search(r'[1-9]\d{5}','BIT 100081') if match: print(match.group(0)) #从一个字符串的开始位置起匹配正则表达式,返回match对象 match1 = re.match(r'[1-9]\d{5}','100081 BIT') if match1: print(match1.group(0)) #搜索字符串,以列表类型返回全部能匹配的子串 ls = re.findall(r'[1-9]\d{5}','BIT100081 TSU100084') print(ls) #将一个字符串按照正则表达式匹配结果进行分割,返回列表类型 split = re.split(r'[1-9]\d{5}','BIT100081 TSU100084') print(split) # maxsplit=1只匹配第一个位置 split1 = re.split(r'[1-9]\d{5}','BIT100081 TSU100084',maxsplit=1) print(split1) #搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素都是match对象 for m in re.finditer(r'[1-9]\d{5}','BIT100081 TSU100084'): if m: print(m.group(0)) #在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串 print(re.sub(r'[1-9]\d{5}',':zipcode','BIT100081 TSU100084'))
python中re的match对象
import re #search表示匹配一次的结果 m = re.search(r'[1-9]\d{5}','BIT100081 TSU100084') print(m.string) print(m.re) #正则表达式 print(m.pos) #起始位置 print(m.endpos) #结束位置 print(m.group(0)) #查看匹配的信息 一般都在group(0)中 print(m.start()) #匹配的原始位置 print(m.end()) #匹配的终点位置 print(m.span()) #查看两个位置的二元关系
python中re的贪婪匹配
import re match = re.search(r'PY.*N','PYANBNCNDN') #re库默认采用贪婪匹配,即输出匹配最长的子串 print(match.group(0)) #最小匹配 match1 = re.search(r'PY.*?N','PYANBNCNDN') print(match1.group(0))
声明:我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=23z6dnotw0skk
评论区