匹配Python正则表达式搜索的第一个实例

匹配Python正则表达式搜索的第一个实例,python,regex,Python,Regex,我正在寻找使用正则表达式匹配两个方括号的第一个实例。目前,我正在做 regex = re.compile("(?<=(\[\[)).*(?=\]\])") r = regex.search(line) 返回字符串 但当我在另一行尝试时: [[string]] ([[string2]], [[string3]]) 结果是 string]] ([[string2]], [[string3 我遗漏了什么?Python*,+,?和{n,m}量词默认情况下是贪婪的 默认情况下,使用上述量词量化

我正在寻找使用正则表达式匹配两个方括号的第一个实例。目前,我正在做

regex = re.compile("(?<=(\[\[)).*(?=\]\])")
r = regex.search(line)
返回
字符串

但当我在另一行尝试时:

[[string]] ([[string2]], [[string3]])
结果是

string]] ([[string2]], [[string3

我遗漏了什么?

Python
*
+
{n,m}
量词默认情况下是贪婪的

默认情况下,使用上述量词量化的模式将尽可能匹配。在您的例子中,这意味着第一组括号和最后一组括号。在Python中,可以通过在任何量词后面添加
使其成为非贪婪(或“懒惰”)量词。在你的情况下,这会在你的表达式的中间部分转换为<代码> * >代码>。正则表达式从根本上讲不是贪婪的或非贪婪的。python
re
包提供了一个贪婪的、递归的正则表达式回溯实现。(+1表示答案正确)
string]] ([[string2]], [[string3