Python 如何从左到右运行不贪婪的正则表达式

Python 如何从左到右运行不贪婪的正则表达式,python,regex,Python,Regex,我有以下要匹配的字符串: "data data and some stuff in the middle that can change, data data" 现在,如果我只想提取字符串末尾的“数据”一次,我会使用惰性量词: data\s.+?data 哪些匹配: "data data and some stuff in the middle that can change, data" 如何从左向右执行相同的操作,以便只在字符串开头提取一次“数据” 我正在使用Python flavor

我有以下要匹配的字符串:

"data data and some stuff in the middle that can change, data data"
现在,如果我只想提取字符串末尾的“数据”一次,我会使用惰性量词:

data\s.+?data
哪些匹配:

"data data and some stuff in the middle that can change, data"
如何从左向右执行相同的操作,以便只在字符串开头提取一次“数据”


我正在使用Python flavor,以防有人需要知道。

您有两个选择。第一种是使用捕获组:

^\s*(?:data\s+)*(data\s.*?data)

你们需要的是在第一组中。第二种方法是使用以下方法将重复的
数据
替换为两端的一个
数据

^(?:\s*data)+|(data\s*)+$

请参见

您想要的输出是什么<代码>数据和中间的一些可以改变的数据,数据< /代码>?是的,这就是我想要的输出。