我是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
哪个没有用。然后,我尝试执行此操作,仅剪切IP地址(92.230.28.21),但不剪切名称:
for final in match2:
netname=re.findall('\d+\.\d+\.\d+\.\d+', final)
print final
您可以使用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
这是一个基于正则表达式的示例方法:
>>> import re
>>>
>>> pattern = re.compile(r"/(\w+)\.mp3$")
>>> for url in urls:
... print(pattern.search(url).group(1))
...
Hotbird
Coldbird
在这里,我们使用捕获组(\w+)
来捕获mp3文件名,该文件名由一个或多个字母数字字符组成,mp3
并在网址末尾加一个点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句