Python函数查找两个标记之间的字符串

3 投票
1 回答
6413 浏览
提问于 2025-04-17 03:47

我想写一个字符串函数,用来提取两个标记之间的内容。这个函数会返回一个提取的列表。

def extract(raw_string, start_marker, end_marker):
    ... function ...
    return extraction_list

我知道可以用正则表达式来实现这个功能,但这样快不快?因为在我的处理过程中,这个函数会被调用数十亿次。有没有更快的方法呢?

如果这两个标记是一样的,并且出现的次数是奇数,会发生什么呢?

这个函数应该能返回多个字符串,如果开始和结束的标记出现不止一次的话。

1 个回答

11

你可能无法比这个更快:

def extract(raw_string, start_marker, end_marker):
    start = raw_string.index(start_marker) + len(start_marker)
    end = raw_string.index(end_marker, start)
    return raw_string[start:end]

不过如果你想试试正则表达式,可以先做个性能测试。这里有个不错的timeit模块可以用来测试时间。

撰写回答