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'
