正则表达式小析

时间:2023-01-07 03:27:12

1、正则表达式匹配的步骤

    a.用"import re"导入正则表达式模块

    b.用"re.compile()"函数创建一个Regex对象(使用原始字符串)

    c.向Regex对象的search()方法传入想查找的字符串,它返回一个Match对象

    d.调用Match对象的group()方法,返回实际匹配文本的字符串

import respam ='我的电话是:177-2345-6789'
PhonenumberRegex = re.compile(r'\d\d\d-\d\d\d\d-\d\d\d\d')
Match = PhonenumberRegex.search(spam)
print ('匹配到的电话号码是:'+Match.group())

2.建立自己的字符类型

    \d:表示0到9的所有数字

    \D:表示除0到9以外的所有字符

    \w:任意字母、数字和下划线(可以认为是匹配“单词”)

    \W:除字母、数字和下划线以外的任意字符

    \s:空格、制表符和换行(可以认为是“空白”)

    \S:除空格、制表符和换行以为的任意字符

    [a-zA-Z0-9]:匹配所有小写、大写和数字

    ?:?前面的出现零次或者一次

    *:*前面的出现零次或者多次

    +:+前面的必须至少出现一次

    {3}:{3}前面的出现三次

    {3,5}:前面的出现三、四、五次

    ^:(插入字符)表示不在这个字符类中的所有字符。eg:(r'[^abcdefg]')不包含abcdefg的字符

    (^'hello'):以hello开始的字符串

    (r'\d$'):匹配以数字结尾的字符串

    r'^\d+$':匹配从开始到结束都是数字的字符

    .:(句点)通配符,匹配除换行以外的所有字符,但是只能匹配一个字符。

3.小知识点

    1)不区分大小写

            向re.compile()方法传入re.IGNORECASE或者re.I,作为第二个参数。

                eg:Regex = re.compile(r'robss',re.I)

    2)句点匹配换行字符

            向re.compile()方法传入re.DOTALL,作为第二个参数。

                    Eg:Regex = re.compile(r'robbss',re.DOTALL|re.I)字符不区分大小写,并且句点匹配换行

    3)方括号[]

            在方括号内,普通的正则表达式符号不会被解释。

                

import reRegex = re.compile(r'[.]')Regex1 = re.compile(r'.')Match = Regex.findall('.asdqwe')Match1 = Regex1.findall('.asdqwe!@#$')print (Match)print (Match1)

输出为:正则表达式小析