2014-12-27 34 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> 
>>> 

正如您所見,轉義符(反斜槓)在單引號之前仍然存在。

相關問題