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

标签 python regex string

<分区>

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

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/

相关文章:

Python dateutil 解析器,忽略字符串的非日期部分

python - 如何获取平衡括号组的内容

python - 从按列排序的方阵中获取下对角线索引

python - Pandas 中数据为负时为红线,数据为正时为绿线

java - 使用 Java 正则表达式删除空行

java - 正则表达式帮助在字符串中搜索匹配项

html - 如何在iOS中对html格式的字符串应用粗体?

c# - 规范化两个字符串然后比较

c - 在 C 中解析 "file server commands"时遇到问题

python - 测试 Numpy 数组是否包含给定行