匹配次数

import re

def main():
    """"""
    # 1 *(匹配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'))

    # 2 +(匹配1次或多次)
    re_str = r'a+123'
    print(re.fullmatch(re_str, 'aaa123'))
    print(re.fullmatch(re_str, 'a123'))

    # 3 ?(匹配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'))
    # 4 {}
    """
    {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'))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,111评论 4 46
  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 11,996评论 0 99
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,102评论 2 16
  • 曾经我试想过很多种你再次联系我的理由,唯独没有想过是这样的方式。祝福你找到了你生命里的那个人,看到你们笑得那么开心...
    安晓晓阅读 2,523评论 0 1
  • 浪矢杂货店今天重新开起来了,我在简信等你的来信!📮
    艺书阅读 3,051评论 0 0