day22、模块-basedir、os、json模块、pickle和正则模块。

四、正则、

re模块:                                    

作用:针对的对象:字符串,

课前引入:

例子一、

s='dsdsadsadadsalexdsds'
s.find('alex')

  如何找到字符串内部的alex;?过去学习可使用方法:find、split、replace.但是字符串内置的方法很局限,只能实现完全匹配。

如果要找到:与a**开头的需求呢?就无法实现。要实现模糊匹配就得用到模糊匹配。

例子二、模糊匹配

#在文本里面存着一堆身份证
4504231989347382822
1104231989347382822
1104231992347382822
1104231995347382822
.....
#需求:找到北京市1990以后出身的人 ^110......1990+*

找到一堆字符串里面的数字:

day22、模块-basedir、os、json模块、pickle和正则模块。

  正则本质上是一种小型的,高度专业化的编程语言。(python)中内嵌在python中,并通过re模块来实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。

字符匹配:(普通字符、元字符)

普通字符:大多数字符和字母都会和自身匹配

 import re
 print(re.findall('alex','dsfjdsfldsjfdalexdsds')) >>> ['alex']

元字符:. ^ $ * + ?{} [] | () \

字符讲解:

1⃣️通配符 '.’

import re
print(re.findall('a..x','dsfjdsfldsjfdalexdsds')) >>>
['alex']

2⃣️、尖角号:^ 以什么开头。在字符串的开头进行匹配。如果符合要求匹配成功。

import re
print(re.findall('^d..j','dsfjdsfldsjfdalexdsds'))
>>>
['dsfj']

3⃣️、$ 符号  以什么结尾,

import re
print(re.findall('d..s$','dsfjdsfldsjfdalexdsds')) >>>>
['dsds']

重复符号:

4⃣️、*   (0,∞) D*按照紧挨着的字符进行无穷次→贪婪匹配,

import re
print(re.findall('d*','dsfjdsflddddddddddsjfdalexdsds')) >>>
['d', '', '', '', 'd', '', '', '', 'dddddddddd', '', '', '', 'd', '', '', '', '', 'd', '', 'd', '', '']
import re
print(re.findall('^d*','dsfjdsflddddddddddsjfdalexdsds'))
>>
['d']

上一篇:我的AngularJS学习轨迹


下一篇:nginx的linux服务器内核参数调整【转】