正则表达式怎么在python项目中使用

介绍

本篇文章给大家分享的是有关正则表达式怎么在python项目中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>一、导入再保险库

python使用正则表达式要导入库。

import  re

在再保险库中。正则表达式通常被用来检索查找,替换那些符合某个模式(规则)的文本。

<强>二、使用正则表达式步骤

1,寻找规律;

2,使用正则符号表示规律;

3,提取信息,如果每一个字符都能匹配,则匹配成功,一旦有匹配不成功的字符则匹配失败。

<强>三,正则表达式中常见的基本符号

1。点号“。”

,,,一个点号可以代替除了换行符(\ n)以外的任何一个字符,包括但不限于英文字母,数字,汉字,英文标点符号和中文标点符号。

2。星号“*”

,,,一个星号可以表示它前面的一个子表达式(普通字符,另一个或几个正则表达式符号)0次到无限次。

3。问号“?”

,,,问号表示它前面的子表达式0次或1次者。注意,这里的问号是英文问号。

4。反斜杠“\”

,,,反斜杠在正则表达式里面不能单独使用,甚至在整个Python里都不能单独使用。反斜杠需要和其他的字符配合使用来把特殊符号变成普通符号,把普通符号变成特殊符号。如:“\ n”。

5。数字" \ d "

,,,正则表达式里面使用“\ d”来表示一位数字。再次强调一下,“\ d”虽然是由反斜杠和字母d构成的,但是要把“\ d”看成一个正则表达式符号整体。

6。小括号“()”

小括号可以把括号里面的内容提取出来。

<强>四,常见的正则表达式举例

1只;. * ?(匹配所有内容)

例如:& # 39;& lt; title> (. * ?) & lt;/title> & # 39;,,将网页的标题爬取下来。

2 \ w单词字符[A-Za-z0-9_],“+”;匹配前一个字符1次或无限次例如:一个人的邮箱是这样的lixiaomei@qq.com,那么我们如何从一大堆的字符串把它提取出来呢?,

模式:,\ w + @ \ w + \ . com

正则表达式怎么在python项目中使用“> </p> <p>思考:若邮箱为hello123@heuet.edu.com,如何匹配? </p> <pre类=模式:\ w + @ \ w + \。? \ w + \ . com

?代表了匹配0次或1次者括号分组内的匹配内容,“(),则表示被括内容是一个分组,分组序号从模式字符串起始往后依次排列。因为是匹配0次或1次,那么就意味着括号内的部分是可有可无的,所以这个模式就可能匹配以上两种邮箱格式。

扩展:,\ w + @ \ w + \。* \ w + \ .com 模式就更厉害了,“* " 可以匹配0次或无限次。

五、re库的核心函数

Regular Expression怎么在python项目中使用

1、compile()函数 (可有可无)

  • 函数定义: compile(pattern, flag=0)

  • 函数描述:编译正则表达式pattern,然后返回一个正则表达式对象。

为什么要对pattern进行编译呢?《Python核心编程》里面是这样解释的:

使用预编译的代码对象比直接使用字符串要快,因为解释器在执行字符串形式的代码前都必须把字符串编译成代码对象。

2、match()函数

  • 函数定义: match(pattern, string, flag=0)

  • 函数描述:只从字符串的最开始与pattern进行匹配,匹配成功返回匹配对象(只有一个结果),否则返回None。

Regular Expression怎么在python项目中使用

问题来了,为什么result1结果有这么多的东西啊?貌似最后一个才是要匹配的对象。这个要怎么提取出来呀?

别着急,我们现在得到的是匹配对象,需要用一定的方法提取,后面会在《匹配对象的方法》章节来解决这个问题,继续往下看。

3、search()函数

  • 函数定义: search(pattern, string, flag=0)

  • 函数描述:与match()工作的方式一样,但是search()不是从最开始匹配的,而是从任意位置查找第一次匹配的内容。如果所有的字串都没有匹配成功,返回None,否则返回匹配对象。

    正则表达式怎么在python项目中使用