2014-12-27 32 views
1

所以,我有一个网站有一个XML字符串,我希望我的程序返回出现在两个字符串之间的字符串列表。这里是我的代码:正则表达式中的不需要的字符python

response = requests.get(url) 


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

这将返回一个字符串列表。问题是,有些字符串中有不需要的字符。例如,列表中的一个字符串是“Somethin \\'\\'Bout A Truck”,我想它是'Somethin''Bout A Truck'。

在此先感谢。

+0

'有一个网站有一个XML字符串,'什么是bs4? – 2014-12-27 15:37:19

+0

我会研究它,谢谢。 – Time1 2014-12-27 15:38:49

回答

1

我认为美丽的汤(BS4)会解决这个问题,它也将更高版本的Python 3.4

1

那些逃逸(单反斜线,每个显示为\\)支持可能会从你的观点“无用”但他们毫无疑问在您收到的回复中“存在”。所以,如果字符是存在的,但不必要的,你可以删除它们,例如使用代替str(response.content)

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

如果你真正想要做的是去除所有这些逃逸(如果你想要做的东西比不同你最好解释它是什么:-)。

BeautifulSoup4建议在接受的答案,但一个不错的包确实,确实大肆去除存在于输入的字符 - 它不能了解你的心思,所以它可以不知道什么是“不必要的”到您。例如:

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

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

相关问题