python正则表达式修复网站文章字体不统一的解决方法


Posted in Python onFebruary 21, 2013

网站的大框架下有定义的字体,包括字体大小和颜色等,用户发布文章的时候可能是从其他网站复制过来的文本,复制的过程也保留了字体描述信息。当文章在页面上显示的时候,默认先会使用文章中定义的字体,如果文章中字体不存在的话才显示大框架下定义的全局字体。因此网站的内容就会显得很乱,有的文章字体很大,有的文章字体很小,不美观。能统一的话就好了!

我对html和css等不是很熟,不知道是否能设置一下让文章中定义的字体内容失效。

笨人有笨办法,统一修改文章,将用户的对字体的定义全部删除!哈哈!如果手工完成的话,这可是一个相当繁重的任务,要首先预览页面,如果不统一的话就修改字体,幸好编辑器里面有个“清除格式”选项,全选文本,点一下就OK了,然后再保存……也很麻烦

如果仅仅是修改字体的话,最省事的方法当然是直接修改数据库,从数据库将文章提取出来,删除和字体相关的标签,然后再写回数据库。

专门查了一下html参考手册,对字体的定义有两种方法:

1.是用<font>标签,例如:

<p>
<font size="2" face="Verdana">
This is a paragraph.
</font>
</p>
<p>
<font size="3" face="Times">
This is another paragraph.
</font>
</p>

这种方法是不推荐使用的

2.使用style定义,例如:

<p style="font-family:verdana;font-size:80%;color:green">
This is a paragraph with some text in it. This is a paragraph with some text in it. This is a paragraph with some text in it. This is a paragraph with some text in it.
</p>

只要将字体的定义部分删除就可以了,用python的正则表达式模块进行替换无压力:
def format(data):
    '''将font标签和style标签全部删除'''
    p = re.compile(r'<font .*?>|</font>|style=\".*?\"')
    ret = p.sub('',data)
    if ret != data:
        return retelse:
        return None

python处理数据库相关操作时要注意更新数据方法,可以参考这篇文章:http://www.cnblogs.com/ma6174/archive/2013/02/21/2920126.html
Python 相关文章推荐
Python中变量交换的例子
Aug 25 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Python实现针对含中文字符串的截取功能示例
Sep 22 Python
Python WEB应用部署的实现方法
Jan 02 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
python十进制转二进制的详解
Feb 07 Python
pytorch实现MNIST手写体识别
Feb 14 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
python中format函数如何使用
Jun 22 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
python单例模式的应用场景实例讲解
Feb 24 Python
Python操作Mysql实例代码教程在线版(查询手册)
Feb 18 #Python
python的常见命令注入威胁
Feb 18 #Python
centos下更新Python版本的步骤
Feb 12 #Python
Python3.x和Python2.x的区别介绍
Feb 12 #Python
windows下安装python paramiko模块的代码
Feb 10 #Python
linux下安装easy_install的方法
Feb 10 #Python
Flask SQLAlchemy一对一,一对多的使用方法实践
Feb 10 #Python
You might like
建立动态的WML站点(三)
2006/10/09 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
前端性能优化及技巧
2016/05/06 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
python脚本内运行linux命令的方法
2015/07/02 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
浅谈Python基础之I/O模型
2017/05/11 Python
Python实现的购物车功能示例
2018/02/11 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
Footshop法国:购买运动鞋
2020/01/19 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
2014红色之旅心得体会
2014/10/07 职场文书
担保书格式
2015/01/20 职场文书
比赛主持人开场白
2015/05/29 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
Python初识逻辑与if语句及用法大全
2021/08/07 Python
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL