我想将一个字符串从“#”拆分为“::”,我想多次这样做,这个字符串关于专辑和歌曲,我想分割所有歌曲和专辑的标题:
Input:'the songs is # Moving On:: by Marshmello '#the string
Output:'Moving On'#songs name
我不想对索引这样做,因为标题有所不同 长度以及不同地方的歌曲。
答案 0 :(得分:1)
我能想到的最简单的方法是:
x = 'the songs is # Moving On:: by Marshmello '
print( x[x.find('# ')+2: x.find('::')] )
答案 1 :(得分:1)
您可以使用正则表达式来实现一个非常小的解决方案......
re.search(r'#\s*(.+)\s*::', 'the songs is # Moving On:: by Marshmello ').group(1)
答案 2 :(得分:0)
试试这个:
str = 'the songs is # Moving On:: by Marshmello'
def find_between( s, first, last ):
try:
start = s.index( first ) + len( first )
end = s.index( last, start )
return s[start:end]
except ValueError:
return ""
print find_between(str, "#", "::");
答案 3 :(得分:0)
我会首先分开#,所有人。之后我会在两个不同的数组中拆分::
>>> string = 'the songs is # Moving On:: by Marshmello '
>>> string.split('#',1)[1].split('::',1)[0]
' Moving On'
答案 4 :(得分:0)
那么,你可以做到那一点。您可以多次拆分字符串,如下所示。
"the songs is # Moving On:: by Marshmello".split("#")[1].split("::")[0]
这将为您提供歌曲名称。
答案 5 :(得分:0)
您可以像任何其他列表一样切割字符串:
"Some String"[1:2]
会给你
"om"
你可以得到这样一个特定角色的第一个索引:
"Some String".index("S")
会返回0。
对于您的情况,您可以执行以下操作:
sentence = 'the songs is # Moving On:: by Marshmello '
start_string = "# "
first = sentence.index(start_string) + len(start_string # Add the length of the start string because we want to start the slice at the end of the string
end_string = "::"
last = sentence.index(end_string)
slice = sentence[first:last]
答案 6 :(得分:0)
试试这个,
import re
song = 'the songs is # Moving On:: by Marshmello'
title = re.findall(r'#(.*?)::', song)
print title[0]