Python网络爬虫与信息提取

(三)正则表达式入门学习笔记|Python网络爬虫与信息提取

2018-01-16  本文已影响71人  努力奋斗的durian

1.正则表达式的概念学习
2.正则表达式的语法学习
3.Re库的基本使用
4.Re库的match对象
5.Re库的贪婪匹配和最小匹配
6.单元小结

网页链接【Python网络爬虫与信息提取】.MOOC. 北京理工大学
https://www.bilibili.com/video/av9784617/?from=search&seid=16910651407750346491#page=37

最近更新:2018-01-16

1.正则表达式的概念学习

1.1正则表达式概念

1.2正则表达式的优势

1.3正则表达式的案例

1.4正则表达式在文本处理中十分常用

1.5正则表达式的使用

2.正则表达式的语法学习

2.1正则表达式的构成

2.2正则表达式的常用操作符


2.3正则表达式语法实例

PY{:3}N,表示将大概号前的字符,扩展0到3次。

2.4经典正则表达式实例

2.5匹配IP地址的正则表达式

3.Re库的基本使用

3.1Re库介绍

3.2正则表达式的表示类型

3.3Re库主要功能函数(这六个函数非常常用)

3.3.1 re.search函数使用


>>> import re
>>> match=re.search(r'[1-9]\d{5}','BIT 100081')
>>> if match:
    print(match.group(0))

    
100081
>>> 

3.3.2 re.match函数使用



案例1

>>> import re
>>> match=re.match(r'[1-9]\d{5}','BIT 100081')
>>> if match:
    print(match.group(0))

    
>>> 

结果无匹配值。

案例2

>>> import re
>>> match=re.match(r'[1-9]\d{5}','100081BIT ')
>>> if match:
    print(match.group(0))

    
100081
>>> 

结果有匹配值。

3.3.3 re.findall函数使用

>>> import re
>>> ls=re.findall(r'[1-9]\d{5}','BIT100081  TSU100084')
>>> ls
['100081', '100084']

3.3.4 re.split函数使用



案例1

>>> import re
>>> re.split(r'[1-9]\d{5}','BIT100081  TSU100084')
['BIT', '  TSU', '']

案例2

>>> import re
>>> re.split(r'[1-9]\d{5}','BIT100081  TSU100084',maxsplit=1)
['BIT', '  TSU100084']

3.3.5 re.finditer函数使用


>>> import re
>>> for m in re.finditer(r'[1-9]\d{5}','BIT100081  TSU100084'):
    if m:
        print(m.group(0))

        
100081
100084

3.3.6 re.sub函数使用


>>> import re
>>> re.sub(r'[1-9]\d{5}',':zipcode','BIT100081  TSU100084')
'BIT:zipcode  TSU:zipcode'
>>> 

3.3.7 汇总Re库主要功能函数



6个函数有3个是match对象。

3.4 Re库的另外一种等价用法

4.Re库的match对象

>>> import re
>>> match=re.search(r'[1-9]\d{5}','BIT100081')
>>> if match:
    print(match.group(0))

    
100081

用type函数检查match的类型

>>> type(match)
<class '_sre.SRE_Match'>

看到返回的是sre类型。

4.1 Match对象的属性

4.2 Match对象的方法

4.3 Match实例介绍

4.2.1Match对象的属性实例

>>> import re
>>> m=re.search(r'[1-9]\d{5}','BIT100081  TSU100084')
>>> m.string
'BIT100081  TSU100084'
>>> m.re
re.compile('[1-9]\\d{5}')

只有经过compile的才是正则表达式,没有经过compile的正则表达式则是一种表示。

>>> m.pos
0
>>> m.endpos
20

4.2.2Match对象的方法实例

>>> m.group(0)
'100081'

以上,这是返回第一次匹配对象的结果

>>> m.start()
3
>>> m.end()
9
>>> m.span()
(3, 9)

5.Re库的贪婪匹配和最小匹配

5.1Re库的实例

5.2最小匹配操作符

6.单元小结

6.1Re(正则表达式)入门

上一篇下一篇

猜你喜欢

热点阅读