我想搜索一个我知道包含特定字符序列的几个出现的字符串,并检索这些出现的两个特定字符串之间的编号。或者优选地,从末尾开始编号。我也希望尽可能紧凑,因为它进入列表理解。
我们说我有以下字符串:
s = "foofoo\tBergen, Norway\tAffluent\tDonkey"
我想检索位于"\t"
的最后一次出现和倒数第二次出现之间的s的子串。
所以在这个例子中:"Affluent"
这是我目前正在使用的理解(没有修剪字符串):
data = [(entries[i], entries[i+1]) for i in range(0, len(entries), 3)]
对于我想修剪的数据的每个条目,它都是字符串entries[i]
。
答案 0 :(得分:1)
Rsplit
用于从右侧分割单词
a="foofoo\tBergen, Norway\tAffluent\tDonkey"
word= a.rsplit('\t',2)
if len(word)>2:
print word[-2]
#output =Affluent
答案 1 :(得分:0)
您可以通过字符序列split
字符串,并join
一起(使用您的字符序列作为连接字符串)所需的匹配项。
更新 :对于引用的示例:
"\t".join(s.split("\t")[-2:-1])
答案 2 :(得分:0)
假设您的字符串的开头被视为第62个分隔符号:
def concat_strings(strs):
result = ""
for substr in strs:
result = result + substr
return result
def find_section(s, delim, n, m):
tokens = s.split(delim)
return concat_strings(tokens[n:m])