如何使用正则表达式匹配两个字符串之间的文本,其中这两个字符串本身包含两个其他字符串,并且内部和外部封闭字符串之间有任意数量的文本?
例如,我有这样的文字:
外部开始一些文本内部开始 文本我想要的 内部结束一些更多文本外部结束
在这种情况下,我想要text-that-i-want因为它在inner-start和inner-end之间,而它们本身又在outer-start和outer-end之间。
如果我有
一些文本内部开始 文本我想要的 内部结束一些更多文本外部结束
那么我不想要text-that-i-want,因为虽然它在inner-start和inner-end之间,但没有包含这些字符串的外开始。
同样,如果我有
外部开始一些文本我想要的文本 内部结束一些更多文本外部结束
再说一次,我不想要text-that-i-want,因为没有封闭的 inner-start,尽管有封闭的 outer-start和outer-end字符串。
假设outer-start、inner-start、inner-end和outer-end将永远只用于封闭/分隔的目的。
我认为我可以通过执行两遍正则表达式匹配来做到这一点,即查找external-start和outer-end之间的任何数据,然后在该数据中查找inner-start和inner-end之间的任何文本(如果确实如此这些字符串存在),但我想知道是否可以一次性完成。