欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python--正则表达式

程序员文章站 2022-10-15 20:14:09
一、概念 如果要处理的文件比较简单,直接使用字符串匹配就可以了,如下: 那么使用字符串匹配的python代码: 执行结果: 单个处理数据和文本,效率不高,不适合数据量大的场景,正则表达式可以解决处理数据量大的情况。 正则表达式概念: 1.使用单个字符串来描述匹配一系列符合某个句法规则的字符串 2.是 ......

一、概念

如果要处理的文件比较简单,直接使用字符串匹配就可以了,如下:

Python--正则表达式

那么使用字符串匹配的python代码:

1 def find_start_re(fname):
2     f = open(fname,'r')
3     for line in f:
4         if line.startswith('re'):
5             print(line)
6     f.close()
7 
8 find_start_re('re.txt')

执行结果:

Python--正则表达式

单个处理数据和文本,效率不高,不适合数据量大的场景,正则表达式可以解决处理数据量大的情况。

正则表达式概念:

1.使用单个字符串来描述匹配一系列符合某个句法规则的字符串

2.是对字符串操作的一种逻辑公式

3.应用场景:处理文本和数据

4.正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功,否则匹配失败

 

二、re模块

re使用的过程

Python--正则表达式

使用举例:

1.

Python--正则表达式

Python--正则表达式

Python--正则表达式

2.

Python--正则表达式

3.匹配时忽略大小写,增加re.I

Python--正则表达式

4.正则表达式语法

Python--正则表达式

Python--正则表达式

*的用法:

Python--正则表达式

+的用法:匹配合理的变量名(必须以‘_’或者字母开头)

Python--正则表达式

?用法:匹配0-99的数字

Python--正则表达式

{m}/{m,n}的用法:匹配合理的126邮箱(@126.com之前是6到10位字符)

Python--正则表达式

*?/+?/??的用法:

Python--正则表达式

正则表达式进行边界匹配

Python--正则表达式

正则表达式进行分组匹配

Python--正则表达式

的用法:匹配0-99的数字

Python--正则表达式

Python--正则表达式

(ab)的用法:

Python--正则表达式

\<number>的用法:处理xml文件时会经常用到 <book>python</book>

Python--正则表达式

Python--正则表达式

(?P<name>)、(?P=name)的用法:

Python--正则表达式

 

三、re的其他方法

因为re模块的match方法是从头开始匹配的,当需要匹配字符串中的子串的时候就不好用了。

Python--正则表达式

Python--正则表达式

search方法:匹配字符串中的数字 'study python = 1000'

Python--正则表达式

findall方法:

Python--正则表达式

Python--正则表达式

sub方法:参数repl有两种方式,一种是本身就是字符串,一种是函数,取函数返回的字符串

Python--正则表达式

split用法

Python--正则表达式