开发者

Match first instance of Python regex search

开发者 https://www.devze.com 2023-02-12 18:31 出处:网络
I\'m looking to the first instance of a match two square brackets using regular expressions. Currently, I am doing

I'm looking to the first instance of a match two square brackets using regular expressions. Currently, I am doing

regex = re.compile("(?<=(\[\[)).*(?=\]\])")
r = regex.search(line)

which works for lines like

[[string]] 

returns string

but when I try it on a separate line:

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

The res开发者_开发技巧ult is

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

What am I missing?


Python *, +, ? and {n,m} quantifiers are greedy by default

Patterns quantified with the above quantifiers will match as much as they can by default. In your case, this means the first set of brackets and the last. In Python, you can make any quantifier non-greedy (or "lazy") by adding a ? after it. In your case, this would translate to .*? in the middle part of your expression.

0

精彩评论

暂无评论...
验证码 换一张
取 消