#!/usr/bin/env python
import re
filename = 'source.c'
text = open(filename).read()
r = re.compile(r'/*.*?*/', re.DOTALL)
cr= re.compile('Copyright')
def sub_copyright(m):
mo = cr.search(m.group())
if mo:
return '/*xxx*/'
else:
return m.group()
result = r.sub(sub_copyright, text)
open('result.c', 'w').write(result)
import re
filename = 'source.c'
text = open(filename).read()
r = re.compile(r'/*.*?*/', re.DOTALL)
cr= re.compile('Copyright')
def sub_copyright(m):
mo = cr.search(m.group())
if mo:
return '/*xxx*/'
else:
return m.group()
result = r.sub(sub_copyright, text)
open('result.c', 'w').write(result)
可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])
replacement是被替换成的文本
string是需要被替换的文本
count是一个可选参数,指最大被替换的数量
例子:
import re
p = re.compile(‘(blue|white|red)’)
print(p.sub(‘colour’,'blue socks and red shoes’))
print(p.sub(‘colour’,'blue socks and red shoes’, count=1))
输出:
colour socks and colour shoes
colour socks and red shoes
subn()方法执行的效果跟sub()一样,不过它会返回一个二维数组,包括替换后的新的字符串和总共替换的数量
例如:
import re
p = re.compile(‘(blue|white|red)’)
print(p.subn(‘colour’,'blue socks and red shoes’))
print(p.subn(‘colour’,'blue socks and red shoes’, count=1))
输出
(‘colour socks and colour shoes’, 2)
(‘colour socks and red shoes’, 1)
replacement是被替换成的文本
string是需要被替换的文本
count是一个可选参数,指最大被替换的数量
例子:
import re
p = re.compile(‘(blue|white|red)’)
print(p.sub(‘colour’,'blue socks and red shoes’))
print(p.sub(‘colour’,'blue socks and red shoes’, count=1))
输出:
colour socks and colour shoes
colour socks and red shoes
subn()方法执行的效果跟sub()一样,不过它会返回一个二维数组,包括替换后的新的字符串和总共替换的数量
例如:
import re
p = re.compile(‘(blue|white|red)’)
print(p.subn(‘colour’,'blue socks and red shoes’))
print(p.subn(‘colour’,'blue socks and red shoes’, count=1))
输出
(‘colour socks and colour shoes’, 2)
(‘colour socks and red shoes’, 1)