我一直收到这个错误:
文件“abc.py”,第19行,在findBetween start = s.index(first)+中 len(first)ValueError:未找到子字符串
运行此代码:
def findBetween(s, first, last):
start = s.index(first) + len(first)
end = s.index(last)
return (s[start:end])
我无法弄清楚代码有什么问题。非常感谢您的帮助!
答案 0 :(得分:0)
我无法弄清楚你想要做什么,但是如果你想创建一个函数来返回两个字符之间的字符串部分,这段代码将起作用
def findBetween(s, first, last):
start=s.index(first)+1
end=s.index(last)
return s[start:end]
print findBetween("ahellob","a","b")
答案 1 :(得分:0)
index()
会引发异常。如果您搜索的数组中的索引不包含您要查找的值,也会发生相同的情况。您的函数中还存在另一个(小)缺陷:如果在end
匹配之前找到start
匹配,即使在找到另一个end
匹配后,您也会返回一个空字符串开始比赛。
这可能有点矫枉过正,但您可以在此处使用re
。使用此:
import re
m = re.search("ab(.*?)cd", "abdddcd")
if m: # Does not fail if string is not found
print m.group(1) # Prints 'ddd'