Fullmatchpattern string flags0 match 函 数的完

This preview shows page 3 - 5 out of 5 pages.

| fullmatch(pattern, string, flags=0) | match 数的完 匹配(从字符串开头 | | findall(pattern, string, flags=0) | 查找字符串所有与正则表达式匹配的模式 返回 字符串的 | | finditer(pattern, string, flags=0) | 查找字符串所有与正则表达式匹配的模式 返回 一个 | | purge() | 清除隐 式编 的正则表达式的 缓存 | | re.I / re.IGNORECASE | 忽略 写匹配标 | | re.M / re.MULTILINE | 多行匹配标 | > ** 说明: ** 上面提 re 模块中的这些 数, 实际 中也可以用正则表达式对 的方 替代对这些 数的使用,如果一个正则表达式需要重复的使用,那么 通过 compile 数编 正则表达式并 创建 出正则表 达式对 象无疑 是更为明 选择 下面我们通过一系 的例 告诉 大家在 Python 中如何使用正则表达式。 #### 1 验证输 入用 名和 QQ 号是否有 并给出对 的提示信息。 ```Python """ 验证输 入用 名和 QQ 号是否有 并给出对 的提示信息 要求:用 必须由 母、 数字或下 划线构 成且 长度 6~20 个字符之 QQ 号是 5~12 的数字且 位不能为 0 """ import re def main(): username = input(' 请输 入用 : ') qq = input(' 请输 QQ : ') # match 数的 一个 数是正则表达式字符串或正则表达式对 # 第二 数是要跟正则表达式做匹配的字符串对 m1 = re.match(r'^[0-9a-zA-Z_]{6,20}$', username) if not m1: print(' 请输 入有 的用 .') m2 = re.match(r'^[1-9]\d{4,11}$', qq) if not m2: print(' 请输 入有 QQ .') if m1 and m2: print(' 入的信息是有 !') if __name__ == '__main__': main() ``` > ** 提示: ** 上面在书写正则表达式时使用了“ 原始 字符串 的写 (在字符串 上了 r ),所 原始 符串 就是字符串中的 个字符都是它 原始 的意义,说得更 直接 就是字符串中没有所 义字符 。因 为正则表达式中有很多 字符和需要进行 义的地方,如果不使用 原始 字符串就需要将 反斜杠 写作 \\\\ ,例
Image of page 3
如表示数字的 \\d 得书写成 \\\\d ,这样不 写起来不方 便 ,阅读的时 也会很 吃力 #### 2 :从一段文字中提取出国内手机号码。 下面这 张图 截止到 2017 年底 ,国内 家运 营商推 出的手机号段。 ![](./res/tel-start-number.png) ```Python import re def main(): # 创建 正则表达式对 使用了 前瞻 回顾 保证 手机号 后不 应该 数字 pattern = re.compile(r'(?<=\D)1[34578]\d{9}(?=\D)') sentence = ''' 重要的 事情 8130123456789 ,我的手机号是 13512346789 这个 号, 不是 15600998765 ,也是 110 119
Image of page 4
Image of page 5

You've reached the end of your free preview.

Want to read all 5 pages?

  • Fall '19

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture