• python进阶(20) 正则表达式的超详细使用


    正则表达式(Regular Expression,在代码中常简写为regexregexpREre)是预先定义好的一个“规则字符率”,通过这个“规则字符串”可以匹配、查找和替换那些符合“规则”的文本。
      虽然文本的查找和替換功能可通过字符串提供的方法实现,但是实现起来极为困难,而且运算效率也很低。而使用正则表达式实现这些功能会比较简单,而且效率很高,唯一的困难之处在于编写合适的正则表达式。
      Python 中正则表达式应用非常广泛,如数据挖掘、数据分析、网络爬虫、输入有效性验证等,Python 也提供了利用正则表达式实现文本的匹配、查找和替换等操作的 re 模块。

    1.1 正则表达式字符串

    正则表达式是一种字符串,正则表达式字符串是由普通字符和元字符组成的。
    1)普通字符
    普通字符是按照字符字面意义表示的字符。
    2)元字符
    元字符是预先定义好的一些特定字符,比如w.都属于元字符。

    1.1.1 元字符

    元字符(Metacharacters)是用来描述其他字符的特殊字符,它由基本元字符和普通字符构成。基本元字符是构成元字符的组成要素。基本元字符主要有14个,具体如下图所示。

    字符说明
    转义符,表示转义
    . 表示任意一个字符
    + 表示重复1次或多次
    * 表示重复0次或多次
    ? 表示重复0次或1次
    | 选择符号,表示“或关系”,例如:A | B 表示匹配A或B
    {} 定义量词
    [] 定义字符类
    () 定义分组
    ^ 可以表示取反,或匹配一行的开始
    $ 匹配一行的结束

    上面表格中w+ 是元字符,它由两个基本元字符(+)和一个普通字符 w构成。另外,还有.元字符,它由两个基本元字符,构成。
    学习正则表达式某种意义上讲就是在学习元字符的使用,元字符是正则表达式的重点也是难点。下面会分门别类地介绍元字符的具体使用。

    1.1.2 字符转义

    在正则表达式中有时也需要字符转义,比如 w字符不表示英文字母 w,而是表示任何语言的单词字符(如英文字母、亚洲文字等)、数字和下画线等内容时,需要在w 字母前加上反斜杠。反斜杠也是基本元字符,与 Python 语言中的字符转义是类似的。不仅可以对普通字符进行转义,还可以对基本元字符进行转义。如上面的表格,其中点.字符是希望按照点.的字面意义使用,作为.com域名的一部分,而不是作为.基本元字符使用,所以需要加反斜杠进行转义,即.才是表示点.的字面意义。

    1.1.3 开始与结束字符

    本节通过一个示例介绍在 Python中如何使用正则表达式。
    在1.1.1 节介绍基本元字符时介绍了^$,它们可以用于匹配一行字符串的开始和结束。当以^开始时,要求一行字符串的开始位置匹配:当以$结束时,要求一行字符串的结位置匹配。所以正则表达式w+@jiakecong.com^w+@jiakecong.com$是不同的。
    示例代码如下:

    import re
    
    
    p1 = r'w+@jiakecong.com'
    p2 = r'^w+@jiakecong.com$'
    text = "Tony 's email is tony_guan111@jiakecong.com"
    m = re.search(p1, text)
    print(m)
    
    m = re.search(p2, text)
    print(m)
    
    email = "tony_guan111@jiakecong.com"
    m = re.search(p2, email)
    print(m)

    https://www.cnblogs.com/jiakecong/p/15207207.html

    故乡明
  • 相关阅读:
    ChromeDriver下载
    LR基础理论详解
    python中assert详解
    python定义类()中写object和不写的区别
    python list初始化技巧
    python list中append()方法和extend()方法区别
    python生成器(generator)、迭代器(iterator)、可迭代对象(iterable)区别
    使用__slots__节省python内存技巧
    lambda表达式详解
    python处理数据问题详解
  • 原文地址:https://www.cnblogs.com/luweiweicode/p/15211766.html
Copyright © 2020-2023  润新知