01.15 - 匹配次数

*(匹配0次或多次)

  • 字符* - 指定的字符出现0次或者多次(这儿的字符可以是正则符号,也可以是普通字符)

  • a* - a出现0次或者多次

  • \d* - 任意数字出现0次或者多次

  • [a-z]* - 任意小写字母出现0次或多次

# 123前面有0个或者多个字符,并且每个字符都是a
re_str = r'a*123'
print(re.fullmatch(re_str, 'aaa123'))
print(re.fullmatch(re_str, '123'))

# 123前面有0个或者多个字符,并且每个字符都是数字字符
re_str = r'\d*123'
print(re.fullmatch(re_str, '12123'))
print(re.fullmatch(re_str, '123'))

re_str = r'[a-z]*123'
print(re.fullmatch(re_str, 'huagh123'))
print(re.fullmatch(re_str, '123'))

+(匹配1次或多次)

re_str = r'a+123'
print(re.fullmatch(re_str, 'aaa123'))
print(re.fullmatch(re_str, 'a123'))

?(匹配0次或者1次)

re_str = r'\+?abc'
print(re.fullmatch(re_str, '+abc'))

# 练习:写一个正则表达式能够匹配所有的整数字符串
"""
1233
+233
-384
00233 不是整数
"""
re_str = r'[+-]?[1-9]\d*'
print(re.fullmatch(re_str, '389'))

{}

  • {M,N} - 匹配M到N次(最少M次,最多N次)
  • {M,} - 匹配至少M次
  • {,N} - 匹配最多N次
  • {N} - 匹配N次
print(re.fullmatch(r'a{2,5}', 'aaaaa'))
print(re.fullmatch(r'a{2,}', 'aaa'))
print(re.fullmatch(r'a{,3}', 'aa'))
print(re.fullmatch(r'a{4}', 'aaaa'))
# 密码:6~16位,只能包含数字和字母
print(re.fullmatch(r'[a-zA-Z\d]{6,16}', '3u2222'))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,408评论 0 2
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,464评论 0 5
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,058评论 0 13
  • 没有希望的人生,正如没有月亮的黑夜。正如没有太阳的白天,人一生当中最怕,最怕的是爱,爱错一个人,但是还是爱错了,只...
    王海仙阅读 242评论 0 0
  • 上篇文章说到,我们不在意的洋洋的小咳嗽,回京后给我带来了大麻烦,我就详细介绍一下洋洋甲流的全过程,给各位宝妈借鉴一...
    安心SH阅读 23,924评论 0 2