我试图在"</ html>"标记之后抓取所有内容并将其删除,但我的代码似乎没有做任何事情.难道.replace()不支持正则表达式?
z.write(article.replace('</html>.+', '</html>'))
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 281
否.Python中的正则表达式由re模块处理.
article = re.sub(r'(?is)</html>.+', '</html>', article)
Run Code Online (Sandbox Code Playgroud)
And*_*ena 30
@Ignácio是对的,+ 1,我只是提供更多的例子.
要使用正则表达式替换文本,请使用re.sub函数:
sub(pattern,repl,string [,count,flags])
它将替换pattern传递为的文本的非永久实例string.如果您需要分析匹配以提取有关特定组捕获的信息,那么对于isntance,您可以将函数传递给string参数.更多信息在这里.
例子
>>> import re
>>> re.sub(r'a', 'b', 'banana')
'bbnbnb'
>>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435')
'/andre/{id}/abobora/{id}'
Run Code Online (Sandbox Code Playgroud)
您可以将该re模块用于正则表达式,但正则表达式可能对您想要的内容有些过分.我可能会尝试类似的东西
z.write(article[:article.index("</html>") + 7]
Run Code Online (Sandbox Code Playgroud)
这比使用基于正则表达式的解决方案要快得多.
对于这种特殊情况,如果使用re模块太过分了,那么使用split(或rsplit) 方法作为
se='</html>'
z.write(article.split(se)[0]+se)
Run Code Online (Sandbox Code Playgroud)
例如,
#!/usr/bin/python
article='''<html>Larala
Ponta Monta
</html>Kurimon
Waff Moff
'''
z=open('out.txt','w')
se='</html>'
z.write(article.split(se)[0]+se)
Run Code Online (Sandbox Code Playgroud)
输出out.txt为
<html>Larala
Ponta Monta
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267137 次 |
| 最近记录: |