我是python中的新手,我正在尝试在python的另一个字符串中剪切一段字符串.我看了其他类似的问题,但我找不到答案.
我有一个变量,其中包含域列表,域名如下所示:
http://92.230.38.21/ios/Channel767/Hotbird.mp3 http://92.230.38.21/ios/Channel9798/Coldbird.mp3
....
我想要mp3文件名(在这个例子中Hotbird,Coldbird等)
我知道我必须能够使用re.findall()来完成它,但我不知道我需要使用的正则表达式.
任何的想法?
更新:这是我使用的部分:
for final in match2:
netname=re.findall('\W+\//\W+\/\W+\/\W+\/\W+', final)
print final
print netname
Run Code Online (Sandbox Code Playgroud)
哪个没用.然后我尝试这样做只削减IP地址(92.230.28.21)而不是名称:
for final in match2:
netname=re.findall('\d+\.\d+\.\d+\.\d+', final)
print final
Run Code Online (Sandbox Code Playgroud)
你可以使用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
Run Code Online (Sandbox Code Playgroud)
这是一个基于正则表达式的示例:
>>> import re
>>>
>>> pattern = re.compile(r"/(\w+)\.mp3$")
>>> for url in urls:
... print(pattern.search(url).group(1))
...
Hotbird
Coldbird
Run Code Online (Sandbox Code Playgroud)
我们在哪里使用捕获组(\w+)捕获mp3文件名,该文件名包含一个或多个aplhanumeric字符,后跟一个点,mp3位于url的末尾.