正则表达式python中不需要的字符

时间:2014-12-27 15:34:47

标签: regex python-3.x python-requests

所以,我有一个有XML字符串的网站,我希望我的程序返回两个字符串之间出现的字符串列表。这是我的代码:

 response = requests.get(url)


 artists=re.findall(re.escape('<name>')+'(.*?)'+re.escape('</name>'),str(response.content))
 print(artists)

返回字符串列表。问题是,某些字符串中包含不需要的字符。例如,列表中的一个字符串是&#34; Somethin \\&#39; &#39; Bout A Truck&#34;而且我希望它能够成为一个&#39; Somethin&#39; &#39;回合卡车&#39;。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我认为美丽的汤(bs4)将解决这个问题,它也将支持更高版本的python 3.4

答案 1 :(得分:1)

那些转义(单个反斜杠,每个都显示为\\)可能是&#34;不需要的&#34;从你的观点来看,他们毫无疑问地#34;现在&#34;在你收到的回复中。因此,如果字符存在但不需要,您可以删除它们,例如使用代替str(response.content)

str(response.content).replace('\\'. '')

如果你真正想做的就是删除所有这些逃脱(如果你想做一些不同于你更好地解释它的东西: - )。

BeautifulSoup4根据已接受的答案推荐,虽然确实是一个不错的软件包,大肆删除输入中的字符 - 它无法读懂你的想法,所以它无法知道&#34;不需要的&#34;给你。 E.g:

>>> import bs4
>>> s = '<name>Somethin\\\' \\\'Bout A Truck</name>'
>>> soup = bs4.BeautifulSoup(s)
>>> print(soup)
<name>Somethin\' \'Bout A Truck</name>
>>> 

如您所见,单引号之前的转义(反斜杠)仍然存在。