【发布时间】:2020-12-16 15:35:15
【问题描述】:
之前获取中间字符串has been asked但不涵盖某些条件的问题。就我而言,我可能有如下字符串:
subject = '"lorem ipsum", "foo", "baz", "bar", "lorem ipsum", "bar", "ipsum", "foo", "baz", "bar"'
我想提取foo", " 和", "bar" 之间的所有文本实例。传统的“介于两者之间”的答案是:
import re
result = re.findall('foo", "(.*)", "bar', subject)
print(result)
只返回 1 个结果字符串:
'baz", "bar", "lorem ipsum", "bar", "ipsum", "foo", "baz'
但我想要返回的是所有可能的“Between”字符串的列表,例如:
[
'baz',
'baz", "bar", "lorem ipsum',
'baz", "bar", "lorem ipsum", "bar", "ipsum", "foo", "baz',
'baz'
]
所以给定两个子字符串(开始和结束)和一个主题字符串,我怎样才能在subject 中获得start 和end 之间的所有可能子字符串?计算效率最高的解决方案当然是可取的。
【问题讨论】:
-
您希望字符串有多长以及“中间”字符串有多少?
-
对于我现在正在做的项目,不是很多(可能是 4-10 个)。当然,我们可以想象更大/任意的理论扩展要求。
标签: python python-3.x regex string