请教正则搜索如何返回重复值的索引?

新手上路,请多包涵

举例来说,在一个序列中,如
string =“我乘坐的是国航CA1760航班,这个航班的起飞时间是7:30,航班准点率比较高。”
待搜索的是s1 = '航班',用findall和search都可以得到返回值,用re.search(s1,string).start()和string.find(s1)好像只能返回首次出现s1的索引开始值?
请教该如何处理?

阅读 2.4k
3 个回答

那就从 第一次 出现的位置后面 继续 search,直到找不到

    >>> [match.span() for match in re.finditer(s1, string)]

返回一个元组列表:[(13, 15), (18, 20), (31, 33)]

推荐问题