re.sub(pattern, repl, string, count=0, flags=0)
该函数返回通过使用 repl 替换在 string 最左边非重叠出现的 pattern 而获得的字符串。 如果样式没有找到,则不加改变地返回 string。 repl 可以是字符串或函数;如果 repl 是一个函数,那它会对每个非重复的 pattern 的情况调用。这个函数只能有一个 匹配对象 参数,并返回一个替换后的字符串。引用自
这里先调用一次sub
函数找到HTML中所有的文本,再在回调函数中再次调用sub
,找到文本中所有单词,并为其添加上<span>
标签,代码如下:
import re
def dashrepl(matchobj):
return re.sub('([a-zA-Z]+)', dashreplwrd, matchobj.group(0))
def dashreplwrd(matchobjwrd):
return '<span class="wrd">' + matchobjwrd.group(0) + '</span>'
with open('example.html',encoding = 'utf-8') as file_obj:
content = file_obj.read()
result = re.sub('>(.*)<', dashrepl, content)