python中的正则表达式匹配

时间:2014-03-11 05:36:28

标签: python regex

我正在尝试从文件中提取文本的某个部分。 我在使正则表达式匹配尽可能少的字符时遇到问题。

这是一个示例文本文件。

UNIQUE
sdkjbskdfb....
UNIQUE
lnasdljnkjn......
UNIQUE
*Text from here is needed*
UNIQUE2
*Text from here is needed*
UNIQUE

我尽力而为。 "UNIQUE(.\*?)UNIQUE2(.\*?)UNIQUE"

不幸的是,这与整个事情匹配,因为它使用第一个UNIQUE值而不是第三个值。

1 个答案:

答案 0 :(得分:1)

你需要一个消极的向前看:

UNIQUE((?:(?!UNIQUE).)*?)UNIQUE2(.*?)UNIQUE

Regular expression visualization

Debuggex Demo

这就是说,在点击UNIQUE等之前,找到UNIQUE后跟一些不再包含UNIQUE2的字符串。

如果您需要澄清,请告诉我。