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

Mat*_*ock 3 python regex string

我正在寻找一个字符串函数来提取两个标记之间的字符串内容.它返回一个提取列表

def extract(raw_string, start_marker, end_marker):
    ... function ...
    return extraction_list
Run Code Online (Sandbox Code Playgroud)

我知道这可以使用正则表达式来完成但是这很快吗?这将在我的过程中被称为数十亿次.最快的方法是什么?

如果标记相同且出现和奇数次会发生什么?

如果开始和结束标记出现多次,则该函数应返回多个字符串.

vir*_*tor 10

你可能不会比以下更快:

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]
Run Code Online (Sandbox Code Playgroud)

但是如果你想尝试使用正则表达式,只需尝试对它进行基准测试.有一个很好的timeit模块.