美文网首页
Python——正则表达式

Python——正则表达式

作者: 用1心 | 来源:发表于2018-08-30 21:28 被阅读0次

2018-08-30
正则表达式

  1. 正则表达式简介:
      它是一种由-符号-组成的,用来检索字符串的、特殊表达式!!
    需要正则表达式引擎进行解释、分析。目前,正则表达式的引擎主要分为三种:DFA, NFA, POSIX, NFA。

  2. 正则表达式的语法结构
      通过python程序进行测试,但是正则表达式的语法结构在各种语言环境中都是通用的。

Python中提供了re模块,包含了正则表达式的所有功能,专门用于进行正则表达式的处理。

对比:常规的验证手机号码操作:

phone = input("请输入手机号:")

# 验证用户手机号码是否合法的函数
def validatePhone(phone):
    # 判断长度是否合法:
    if len(phone) == 11:
    #判断开始的三位数字是否合法:
        if phone.startswith("156") or phone.startswith("187"):
            # 遍历号码,是否都是数字
            for n in phone:
                # isdigit() 判断是否都是数字
                if not n.isdigit():
                    msg = "手机号码中有非法字符"
                    return msg
            else :
                print("手机号码合法")
        else:
            print("开头数字不合法")
    else:
        print("长度不合法")

print(validatePhone(phone))

测试执行结果如下:

请输入手机号:1563825238怕
手机号码中有非法字符
请输入手机号:18713640027
手机号码合法
None

当我们用正则表达式来改造这段程序时,代码量将大大缩短!!
先上代码:

import re

phone = input("请输入手机号:")

# 验证用户手机号码是否合法的函数
def validatephone(phone):
    # 定义正则表达式
    regexp = r"(156|187)\d{8}$"

    # 开始验证
    if re.match(regexp, phone):
        return "手机号码合法"
    else:
        return "手机号码不合法,请检查号码!!"

# 调用函数执行
print(validatephone(phone))

测试执行结果:

请输入手机号:1875889664
手机号码不合法,请检查号码!!
请输入手机号:18712345678
手机号码合法

2.1 正则表达式中的元字符
  在使用正则表达式的过程中,一些包含特殊含义的字符,用于表示字符位置,非常重要!!

元字符 作用
^ 匹配字符串的开头位置的字符
$ 匹配字符串的结束位置的字符
. 匹配任意一个字符
\d 匹配一个数字字符
\D 匹配一个非数字字符
\s 匹配一个空白字符
\S 匹配一个非空白字符
\w 匹配一个数字/字母/下划线任意一个字符
\W 匹配一个非数字、字母、下划线组成的任意一个字符
\b 匹配一个单词的边界
\B 匹配不是单词的开头或者结束位置

2.2 正则表达式的量词

量词 作用
x* 匹配 * 号前面的字符出现0次或者多次
x+ 匹配 + 号前面的字符出现1次或多次
x? 匹配 ? 号前面的字符出现0次或者1次
x{n} 匹配 x 前面的字符出现n次
x{m, n} 匹配 x 前面的字符出现至少m次,最多n次
x{n, } 匹配 x 前面字符出现至少n次

相关文章

  • 正则表达式

    Python正则表达式初识(一) Python正则表达式初识(二) Python正则表达式初识(三) Python...

  • 正则表达式

    Python:正则表达式Python:正则表达式

  • Python正则表达式指南

    Python正则表达式指南 本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • [转]python正则表达式(一) 函数使用

    原文:python | 史上最全的正则表达式 更全的正则表达式处理函数:在python中使用正则表达式(一) 0....

  • Python正则表达式

    python正则表达式

  • Python正则表达式用法详解

    搞懂Python 正则表达式用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一...

  • Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例...

  • Python处理正则表达式超时的办法

    title: Python处理正则表达式超时的办法tags: [python3, 正则表达式超时, re模块]da...

网友评论

      本文标题:Python——正则表达式

      本文链接:https://www.haomeiwen.com/subject/nkndwftx.html