the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


python正则表达式替换字符串 30840°C

作者:the5fire | 标签:       | 发布:2012-02-26 3:29 p.m.

一个实例,有一段html代码,不符合xml格式规范,所以要用python对它进行下转换。 其中要转换的地方有:

1、[&]转为[&](但是不能把[ ]转了);
2、把代码中的["=""]去掉;
3、把[svg]和[path]标签都改为[svg:svg]和[svg:path];
4、关闭[img]标签;
5、将url()中的["]转为[']

使用正则对html进行了处理。 下面就是代码:

import re
str_url = 'test,&nbsp;url("http://www.baidu.com")&,dddddd "="" <svg></svg><path></path><img src="http://www.baidu.com">ininnnin<img src="http://www.dd.com">'
#2、把代码中的["=""]去掉;
#3、把[svg]和[path]标签都改为[svg:svg]和[svg:path];
str_url = str_url.replace('"=""','')
str_url = str_url.replace('svg','svg:svg')
str_url = str_url.replace('path', 'svg:path')

#1、[&]转为[&amp;](但是不能把[&nbsp;]转了);
url_re = re.compile('&(?!\w{4};)')
str_result = url_re.sub('&amp;', str_url)

#4、关闭[img]标签;
img_list = re.findall('<img.*?>',str_result)

for img_r in img_list:
    str_result = str_result.replace(img_r,img_r + '</img>')

#5、将url()中的["]转为[']
url_list = re.findall('url\(".*?"\)',str_result)
print url_list
for url_r in url_list:
    url_new = url_r.replace('"','\'')
    str_result = str_result.replace(url_r,url_new)
print str_result

----EOF-----

扫码关注,或者搜索微信公众号:码农悟凡

其他分类: