程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python中的re模塊(二)

編輯:Python

1. finditer()函數

搜索字符串,返回一個Match對象迭代器(包含匹配的開始和結束的位置)。找到正則匹配的所有子串,把它們作為一個迭代器返回。

格式:

re.finditer(pattern, string, flags=0)

例如:

import re
itext = re.finditer(r'\d+','12 edueduedu44coder deducoder, 11skdh ds 12') #匹配所有的數字 
for i in itext:
print(i)
print(i.group())
print(i.span()) #span()返回一個元組包含匹配 (開始,結束) 的位置 

運行結果如下:

<re.Match object; span=(0, 2), match='12'>
12
(0, 2)
<re.Match object; span=(12, 14), match='44'>
44
(12, 14)
<re.Match object; span=(31, 33), match='11'>
11
(31, 33)
<re.Match object; span=(43, 45), match='12'>
12
(43, 45)

2. split()函數

按照能夠匹配的子串,將string分割後返回列表。

格式:

re.split(pattern, string)

可以使用re.split來分割字符串,如:re.split(r’\s+', text)將字符串,按空格分割成一個單詞列表。

以數字為分割符,將字符串分割:

print(re.split(r'\d+','asas2kdjs4jds5djdfj1djf0'))

運行結果如下:

['asas', 'kdjs', 'jds', 'djdfj', 'djf', '']

3. sub()函數

使用re替換string中每一個匹配的子串後,返回替換後的字符串。

格式:

re.sub(pattern, repl, string, count)

用-替代,如下:

import re
text = "aaa,bbb,ccc,ddd"
print(re.sub(r',', '-', text))

運行結果如下:

aaa-bbb-ccc-ddd

4. subn()函數

返回替換次數。

格式:

subn(pattern, repl, string, count=0, flags=0)
  • 解釋:用A替換123中的1,結果為A23,repl就是指的A。

把所有的數字替換為A:

print(re.subn('\d','A','1asd2dkjf34'))

運行結果如下:

('AasdAdkjfAA', 4)
  • subn()不僅返回了替換後的字符串,還返回了替換的次數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved