2015-09-26 73 views
4

我是python中的新手,我試圖在python中剪切另一個字符串中的一段字符串。 我看了其他類似的問題,但我找不到我的答案。在python中查找帶正則表達式的字符串

我有包含域名列表中的變量,它的域是這樣的:我想要的MP3文件名(

http://92.230.38.21/ios/Channel767/Hotbird.mp3 http://92.230.38.21/ios/Channel9798/Coldbird.mp3

....

在這個例子中熱鳥,Coldbird等)

我知道我必須能夠用re.findall()完成它,但我不知道需要使用的正則表達式。

有什麼想法?

更新: 這裏是我使用的部分:沒有工作

for final in match2: 
     netname=re.findall('\W+\//\W+\/\W+\/\W+\/\W+', final) 
     print final 
     print netname 

。然後我試圖做這一個只切斷IP地址(92.230.28.21),但不是名稱:

for final in match2: 
     netname=re.findall('\d+\.\d+\.\d+\.\d+', final) 
     print final 
+1

你能展示你已經試過的任何代碼嗎? – idjaw

回答

5

你可能只是使用str.split()

>>> urls = ["http://92.230.38.21/ios/Channel767/Hotbird.mp3", "http://92.230.38.21/ios/Channel9798/Coldbird.mp3"] 
>>> for url in urls: 
...  print(url.split("/")[-1].split(".")[0]) 
... 
Hotbird 
Coldbird 

而且這裏有一個例子regex-基礎的方法:

>>> import re 
>>> 
>>> pattern = re.compile(r"/(\w+)\.mp3$") 
>>> for url in urls: 
...  print(pattern.search(url).group(1)) 
... 
Hotbird 
Coldbird 

在這裏我們使用的是捕獲組(\w+)捕獲的mp3文件名包括一個或多個字符aplhanumeric接着是一個點,mp3在網址的結尾處。

+0

它按預期工作。謝謝 ! –

+0

@SamaAzari很高興幫助。請參閱http://stackoverflow.com/help/someone-answers。此外,仔細查看您之前的問題,看看是否有任何答案值得接受。謝謝! – alecxe

0

怎麼樣?

([^ /] * MP3)$

我覺得可能從該行的工作進行到底

基本上它說...

匹配,與MP3開始,然後匹配一切都回到第一個斜線。

認爲它會表現良好。

相關問題