1. 程式人生 > >python中的正則表達式(re模塊)三

python中的正則表達式(re模塊)三

正則表達式 group ret 字符 findall arc pan sdfs 定義

元字符之分組 ()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
print(re.findall(r"(abc)+",‘abcccccabccc‘))
#註釋:分組是把括號內的字符串看成一個整體來做正則匹配

以上實例執行結果:
[‘abc‘, ‘abc‘]

import re
ret=re.search(‘(?P<id>\d{2})\.(?P<name>\w{3})‘,‘23.com‘)
print(ret.group())   
print(ret.group(‘id‘)) 
#註釋:使用分組的來獲取自己想要的組,以上分文兩個組(id組和name組),實際正真在匹配的是\d{2}和\w{3}
#註釋:(?P<>) 是分組的固定格式,裏面的ID為自定義名字

以上實例執行結果:
23.com
23

re模塊常用方法 search

#類似於find方法,當第一次匹配到以後就不會繼續往後找直接返回結果,如果找不到返回None。

以下實例是使用search方法匹配數字;返回的結果一個match對象

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
ret=re.search(‘\d+‘,‘sdf23sdf35sdfs36‘)
print(ret)

以上實例執行結果:
<_sre.SRE_Match object; span=(3, 5), match=‘23‘>

獲取match對象的值,使用group方法

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
ret=re.search(‘\d+‘,‘sdf23sdf35sdfs36‘).group()
print(ret)

以上實例執行結果
23

re.match方法與search大致相同,不過match在字符串開始處進行匹配;

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
ret=re.search(‘\d+‘,‘56sdf23sdf35sdfs36‘).group()
print(ret)

以上實例執行結果
56

python中的正則表達式(re模塊)三