为什么这个匹配是预期的,但是没有sub?一行就行
import re
s = """<script>
wut</script>"""
print(re.match('<script(.*?)</script>', s, re.DOTALL).groups())
# Returns ('>nwut',)
print(re.sub('<script(.*?)</script>', '', s, re.DOTALL))
# Returns <script>
# wut</script>
我只是想了解这个;无需建议使用Beautiful Soup或手动解析
4h参数表示re.sub
是计数不是标志,可以使用:
>>> print re.sub('<script.*?</script>', '', s, 0, re.DOTALL)
''
这里我们传递的是count=0
,这意味着任意#的替换。
re.sub
的签名为:
re.sub(pattern, repl, string, count=0, flags=0)