如何在正则表达式模式中找到正则表达式模式

时间:2018-04-10 21:11:10

标签: python regex

我有一些如下文字:

between [... between (...)] and (...) as ...

使用正则表达式

between\s+(.+?)\s+and\s+(.+?)\s+as

我试图捕捉两对括号内的内容,即由betweenand限定的内容。但是我坚持认为它总是返回方括号和第二对括号中的内容。

编辑:

例如,如果文本是:

between foo whatever between bar and dummy as

我希望正则表达式提取'bar'和'dummy',而不是'foo between bar'和'dummy'

3 个答案:

答案 0 :(得分:3)

使用.*添加正则表达式或使用否定前瞻:

between(?!.*between\b)\s+(.+?)\s+and\s+(.+?)\s+as

Live demo

答案 1 :(得分:0)

对于您的具体问题,您需要匹配导致问题之间的空白(这似乎是限制因素)。我能够通过以下方式获得结果:

^.+(\s)between\s(.+?)\sand\s(.+?)$

答案 2 :(得分:0)

试试这个:

between\s([^\s]+)\sand\s([^\s]+)

https://regex101.com/r/Vjkr0h/5