python re sub
程序员文章站
2022-07-09 23:47:20
...
抓取小说的时候需要去掉html标签
Beautiful 可以去掉标签,但是对于script 中的js代码也保存了下来,因此先去掉所有的js标签
re.sub(`pattern`, `repl`, `string`, `count=0`, `flags=0`)
`pattern`, `repl`, `string` 为必选参数
`count`, `flags` 为可选参数
`pattern`正则表达式
`repl`被替换的内容,可以是字符串,也可以是函数
`string`正则表达式匹配的内容
`count`由于正则表达式匹配的结果是多个,使用count来限定替换的个数从左向右,默认值是0,替换所有的匹配到的结果
`flags`是匹配模式,`re.I`忽略大小写,`re.L`表示特殊字符集\w,\W,\b,\B,\s,\S,`re.M`表示多行模式,`re.S` ‘.’包括换行符在内的任意字符,`re.U`表示特殊字符集\w,\W,\b,\B,\d,\D,\s,\D
替换部分代码
def f(groups):
return ''
patt = '(<script>.*?</script>)'
t= re.sub(patt, f, t, flags=re.S) # 这里要注意 re.sub 第四个参数是 counts 之前在写的时候 没有写flags,re.S 被认为是参数counts,导致少去掉一个script