Python:在两个给定的子串之间开始和结束子串

时间:2014-02-20 17:46:47

标签: python string

完成以下任务的教科书方式是什么:

我有一个来自s_s * s_l * s_q * s_r * s_e的字符串s,其中*我的意思是连接运算符。

鉴于ss_ls_r我有兴趣返回s_q,我们可能会认为s_ls_r只会发生一次在s

例如:s = "abcdefghij"s_l = "cd"s_r = "hi"所以s_q = "efg"

在这种情况下,正则表达式方法是否合适?

2 个答案:

答案 0 :(得分:1)

In [110]: s[s.find(s_l)+len(s_l): s.find(s_r)]
Out[110]: 'efg'

答案 1 :(得分:0)

您可以拆分字符串,因为您知道s_ls_r只出现一次:

s = "abcdefghij"
s_l = "cd"
s_r = "hi"

print s.split(s_l)[1].split(s_r)[0] # Returns efg

您不需要使用正则表达式,因为s_ls_r是静态的。如果你事先不知道s_ls_r是什么,只有它们匹配某种模式,那么正则表达式可能会有所帮助。