我正在寻找使用正则表达式匹配两个方括号的第一个实例.目前,我在做
regex = re.compile("(?<=(\[\[)).*(?=\]\])")
r = regex.search(line)
Run Code Online (Sandbox Code Playgroud)
适用于像
[[string]]
Run Code Online (Sandbox Code Playgroud)
回报 string
但是当我在另一条线上尝试时:
[[string]] ([[string2]], [[string3]])
Run Code Online (Sandbox Code Playgroud)
结果是
string]] ([[string2]], [[string3
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
Dre*_*rew 47
蟒蛇*,+,?和{n,m}量词是由默认的贪婪
使用上述量词量化的模式将默认匹配尽可能多的模式.在您的情况下,这意味着第一组括号和最后一组.在Python中,您可以通过?在其后面添加一个非贪婪(或"懒惰")来制作任何量词.在您的情况下,这将转换为.*?表达式的中间部分.