好的,可以说我有
s = 'ABC Here DEF GHI toHere JKL'
我想得到一个新字符串,其中仅包含Here
和toHere
之间的字符串
new_str = 'DEF GHI'
(我不知道在Here
之前有多少个字符或其他任何字符)
我只知道字符串中有Here
和toHere
。
如何获得new_str
?
答案 0 :(得分:4)
最简单的方法是使用切片:
s[s.find('Here') + len('Here') : s.find('toHere')]
#' DEF GHI '
如果需要,您可以.strip()
从结果中留出空白。
答案 1 :(得分:1)
使用索引可能会有用
str1 = 'ABC Here DEF GHI toHere JKL'
try:
start=str1.index('Here')+len('Here')
end=str1.index('toHere')
print(str1[start:end].strip())
except ValueError:
print('Either of the substring not found')
答案 2 :(得分:0)
您可以使用enumerate
和.split()
来获取新切片的正确索引,然后使用' '.join()
来获取新切片
s = 'ABC Here DEF GHI toHere JKL'
s = s.split()
for i, v in enumerate(s):
if v == 'Here':
start = i + 1
if v == 'toHere':
end = i
print(' '.join(s[start:end]))
# DEF GHI
答案 3 :(得分:0)
最简单的方法是使用分割(imho)
print(s.split("Here",1)[-1].split("toHere",1)[0])
如果没有Here
或toHere
不存在,它将无法按您的预期工作(它将遭受与其他解决方案相同的后果)