【python re模块详解】python中re清理html标签的函数

更新时间:2019-08-09    来源:python    手机版     字体:

【www.bbyears.com--python】

首先,运行 Python 解释器,导入 re 模块并编译一个 RE:

 代码如下

#!python
 Python 2.2.2 (#1, Feb 10 2003, 12:57:01)
 >>> import re
 >>> p = re.compile("[a-z]+")
 >>> p
 <_sre.SRE_Pattern object at 80c3c28>

现在,你可以试着用 RE 的 [a-z]+ 去匹配不同的字符串。一个空字符串将根本不能匹配,因为 + 的意思是 “一个或更多的重复次数”。 在这种情况下 match() 将返回 None,因为它使解释器没有输出。你可以明确地打印出 match() 的结果来弄清这一点。

 代码如下

#!python

>>> p.match("")
>>> print p.match("")
None

例子

代码

 代码如下 def formatHtml(input):
    regular = re.compile("<\\bp\\b[^>]*>",re.IGNORECASE)
    input = regular.sub("

",input)
    regular = re.compile("]*>",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("]*>",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("]*>",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("<\?[^>]*>",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("]*>",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("]*>",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("<\\bbr\\b[^>]*>",re.IGNORECASE)
    input = regular.sub("
",input)
    regular = re.compile("]*>",re.IGNORECASE)
    input = regular.sub("",input)
    regular = re.compile("<script[^>]*?>.*?</script>",re.IGNORECASE+re.DOTALL)
    input = regular.sub("",input)
    return input

是用re注意:

1、def sub(pattern, repl, string, count=0, flags=0):
第三个参数是count很容易误用成flags.
2、re.sub("<8888(\g<0>)>",s) 其中g<0>表示捕获的分组字符,0表示匹配的整个字符串,1表示第一个分组
3、(]*>)(.*?)()非贪婪
      (]*>)(.*)()贪婪

常用正则表达式中特殊字符

^匹配字符串的开始。
$匹配字符串的结尾。
\b匹配一个单词的边界。
\d匹配任意数字。
\D匹配任意非数字字符。
x?匹配一个可选的x字符(换句话说,它匹配1次或者0次x字符)。

本文来源:http://www.bbyears.com/jiaocheng/61087.html

猜你感兴趣

热门标签

更多>>

本类排行