为了对项目的内容有所了解,我正在尝试编写一种编译为HTML / CSS的标记语言。我计划格式化这样的链接:@(链接掩码)[(链接网址)],我想找到所有这些,并获取链接掩码和链接网址。
我尝试使用此代码:
re.search("@(.*)\[(.*)\]", string)
但它始于第一个实例的开头,并在链接的最后一个实例结束时结束。任何想法我怎么能在列表或其他东西中找到所有这些?
答案 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)
正则表达式的默认行为是“贪婪匹配”。这意味着每个+?
将匹配尽可能多的字符。
您希望它们匹配尽可能少的字符数。为此,请将每个.*
更改为.*
。最后一个问号将使模式匹配最小字符数。因为您将模式锚定到.*?
字符,它仍将正确匹配/使用整个链接。