有没有一种方法可以获取子字符串在另一个字符串中的完整位置?

时间:2020-05-19 16:48:03

标签: python

所以我想做到这一点,这样的事情就会发生:

print(locate("Hello world!", "world!"))
returns: 6 11

因此,您可以用它来查找完整的词组,而不仅仅是x.index("Hello!")的第一个字母

3 个答案:

答案 0 :(得分:0)

您只需将子字符串的长度添加到匹配的索引中

def locate(full, sub):
    index = full.index(sub)
    return index, index + len(sub)

例如

>>> locate("Hello world!", "world!")
(6, 12)

您可以使用它来切回原始字符串

>>> s = "Hello world!"
>>> start, end = locate(s, "world!")
>>> s[start:end]
'world!'

请注意,如果找不到子字符串,str.index会引发ValueError

答案 1 :(得分:0)

您可以使用正则表达式-

import re
r = re.compile("world")
match = r.search("Hello world!")
print(match.span())

答案 2 :(得分:0)

def locate(string, key):
    start = string.index(key)
    return start, start+len(key)