Python函数查找两个标记之间的字符串
我想写一个字符串函数,用来提取两个标记之间的内容。这个函数会返回一个提取的列表。
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模块可以用来测试时间。