python正則表達式(6)--split、sub、escape方法


1.re.split

語法:

  re.split(pattern, string[, maxsplit=0, flags=0])

參數:

  pattern    匹配的正則表達式

  string      要匹配的字符串。

      maxsplit  分隔次數,maxsplit=1 分隔一次,默認為 0,不限制次數。

 

>>>import re

>>> re.split('\W+', 'runoob, runoob, runoob.')

['runoob', 'runoob', 'runoob', '']

 

(1)以分組為分割符的時候,分組內容也會被保存下來

>>> re.split('(\W+)', ' runoob, runoob, runoob.')

['', ' ', 'runoob', ', ', 'runoob', ', ', 'runoob', '.', '']

>>> re.split('\W+', ' runoob, runoob, runoob.', 1)

['', 'runoob, runoob, runoob.']

(2)可同時使用多個分隔符,分隔符,和.都會被切割

>>> re.split('[,\.]',r'hello,Tom.how are you')

['hello', 'Tom', 'how are you']

(3)對於一個找不到匹配的字符串而言,split 不會對其作出分割

>>> re.split('a*', 'hello world')

['hello world']

 

2.sub方法

語法:

  re.sub(pattern, repl, string, count=0, flags=0)

  pattern.sub(repl, string[, count = 0])

參數:

  • pattern : 正則中的模式字符串。
  • repl : 替換的字符串,也可為一個函數。
  • string : 要被查找替換的原始字符串。
  • count : 模式匹配后替換的最大次數,默認 0 表示替換所有的匹配。

1) 當repl是一個字符串

可以使用\id或\g<id>、\g<name>引用分組,但不能使用編號0。

2) 當repl是一個方法

它必須傳一個Match對象,並必須返回一個字符串用於替換(返回的字符串中不能再引用分組)。

 

(2)subn方法

這個函數跟sub函數用法差不多,只是它有一個額外的特征,結果是返回一個tuple,tuple第 一個元素是替換后的新字符串,第二個元素是替換的次數

import re

def add(m):

v = int(m.group(0))

return str(v + 1)

p = re.compile("(\d+)")

result = p.subn(add, "1 2 3 4 5")

print result

>>>('2 3 4 5 6', 5)

 

3.re.escape方法

可以將字符串中所有可能被解釋為正則運算符的字符進行轉譯。

>>> re.escape('www.python.org')

'www\\.python\\.org'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM