python的正则表达式(re模块)笔记

正则表达式的方法:

1:findall   全查找  返回列表

eg:re.findall('查找的字符串',‘被查找的字符串’)

2:search 只匹配第一个对象  返回对象 通过group获取数据

  re.search()

3:match  只在字符串开始匹配  返回跟search一样

  re.match(‘ab’,'abc')

4:split

eg:ret = re.split('[k,s]','djksal')

  print(ret)==>['d', 'k', 'al']#先k进行切割然后再s进行切割

5:sub  替换

eg:re.sub('规则','替换成的字符串',‘被替换的字符串’)

 6:compile  类似模板

>>> obj = re.compile('\.com')
>>> obj.split('www.baidu.com')
['www.baidu', '']
>>> obj.findall('www.baidu.com')

 

元字符:

1:“ . ”==>可匹配任何一位字符(除了换行符)

2:“ ^ ”以这个开头    “$”  以这个结尾的

3:“ * ”==》匹配0-n次

4:“ + ”==》匹配1-n次

5:“ ? ”表示0次或1次

6:“ {N} ”表示匹配n次

7:“ [a-z ]     [a,b] ”   或者的关系

  [^t]==>除t以外的字符

  [^4,5,t]==>除了4,5和t以外的字符

8:“ | ”  或者

9:“ \ ”

  \d : 表示匹配任何十进制数相当于[0-9]

  \D:相当于[^0-9]

  \s:匹配任何空白字符

  \S:匹配任何非空白字符

  \w:匹配任何字母数字字符相当于[a-zA-Z0-9]

10:" \b "匹配一个特殊边界,也就是指单词和空哥间的位置

eg:re.findall(r'I\b','hello ,I am a LIat')

输出 :I

11:()分组

ret = re.search('(?P<id>\d{3})')

可以通过ret.group('id')方式取3个数字的值

12:

13:

14:

 

posted on 2021-01-26 11:16  bruce.sharp  阅读(114)  评论(0)    收藏  举报