<分区>
我正在寻找构建一个字符串函数来提取两个标记之间的字符串内容。它返回一个提取列表
def extract(raw_string, start_marker, end_marker):
... function ...
return extraction_list
我知道这可以使用正则表达式来完成,但是这么快吗?这将在我的过程中被调用数十亿次。最快的方法是什么?
如果标记相同且出现奇数次会怎样?
如果开始和结束标记出现不止一次,该函数应返回多个字符串。
<分区>
我正在寻找构建一个字符串函数来提取两个标记之间的字符串内容。它返回一个提取列表
def extract(raw_string, start_marker, end_marker):
... function ...
return extraction_list
我知道这可以使用正则表达式来完成,但是这么快吗?这将在我的过程中被调用数十亿次。最快的方法是什么?
如果标记相同且出现奇数次会怎样?
如果开始和结束标记出现不止一次,该函数应返回多个字符串。
最佳答案
你的速度可能不能超过:
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 模块。
关于在两个标记之间查找字符串的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7672432/