re模块 正则表达式 python

mac2026-01-11  10

\d 匹配数字 \w 匹配字母或数字 \s 匹配一个空格(包括tab) \s+ 表示至少一个空格 * 表示任意字符(包括零个) + 表示至少一个字符 ? 表示0个或1个字符 {n} 表示n个字符 {n,m} 表示n-m个字符 . 可以匹配任意字符 a|b 表示可以匹配a或b ^ 行的开头 ^\d 表示必须以数字开头 $ 表示结尾 $\d 表示必须以数字结尾 r 前缀,不需要考虑转义符 >>>r'ABC\-001' 'abc\\-001' import re test = input('请输入小写字母') # 用户输入字符 # match()判断是否匹配, ^ $ 开头结尾以字母,范围a-z if re.match(r'^[a-z]+$', test): print('正确:%s' % test) else: print('错误') # re.split正则表达式来把不规范的输入转化成正确的数组 >>>re.split(r'\s+', 'a b c') ['a', 'b', 'c'] >>>m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345') >>>m.group() # group()分组功能 group(1),group(2)...... 010-12345 >>>m.group(1) 010 >>>m.group(2) 12345 # groups() 以元组的方式返回字符 t = '19:05:30' m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t) m.groups() ('19','05','30') # 贪婪匹配 正则匹配尽可能匹配多的字符 >>> re.match(r'^(\d+)(0*)$', '102300').groups() ('102300', '') # 改为非贪婪匹配,仅需要添加 ? >>>re.match(r'^(\d+?)(0*)$', '102300').groups() ('1023','00') # 编译 re.compile() 公式编译,提高重复匹配效益 >>>import re >>>re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$') >>>re_telephone.match('010-12345').groups() ('010','12345')
最新回复(0)