如何在Python中找到多个相同的格式?

时间:2016-11-23 19:18:53

标签: python regex

为了对项目的内容有所了解,我正在尝试编写一种编译为HTML / CSS的标记语言。我计划格式化这样的链接:@(链接掩码)[(链接网址)],我想找到所有这些,并获取链接掩码和链接网址。

我尝试使用此代码:

re.search("@(.*)\[(.*)\]", string)

但它始于第一个实例的开头,并在链接的最后一个实例结束时结束。任何想法我怎么能在列表或其他东西中找到所有这些?

2 个答案:

答案 0 :(得分:0)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="container"> <div class="box fixed-bottom"></div> </div>贪婪:它匹配尽可能多的字符,例如直到文档中的最后一个右括号。 (毕竟,*表示“任何字符”,.是“任何字符”,与任何其他字符一样多。)

您需要)的非贪婪版本,即*。 (实际上你应该使用*?,因为我不认为零长度匹配会非常有用。)

答案 1 :(得分:0)

正则表达式的默认行为是“贪婪匹配”。这意味着每个+?将匹配尽可能多的字符。

您希望它们匹配尽可能少的字符数。为此,请将每个.*更改为.*。最后一个问号将使模式匹配最小字符数。因为您将模式锚定到.*?字符,它仍将正确匹配/使用整个链接。