擅长:python、mysql、java
<p>问题是<code>*</code>是一个贪婪的匹配,这意味着它将消耗比它需要的更多:例如,假设我们有这行代码<code>\\a\\;print("ab");\\b\\;print("end")</code>注释标记将从第一个<code>\\</code>到最后一个<code>\\</code>吐出,并且在这两者之间的所有东西都使注释标记看起来像这样<code>\\a\\;print("ab");\\b\\</code>,这是不好的</p>
<p>使用<code>*</code>操作符上的<code>?</code>将贪婪操作符转换为懒惰操作符,这意味着注释标记将从第一个<code>\\</code>到下一个<code>\\</code>停止生成标记并找到另一个注释,最终输出被拆分为2,就像它应该的那样。1.<code>\\a\\</code>2.<code>\\b\\</code></p>
<p>在这个<code>*</code>上使用<code>?</code>会让它变得懒惰,做它想让我做的事</p>
<p>固定代码是<code>\\\\.*?\\\\</code>,如果您想了解有关贪婪和懒惰运算符的更多详细信息,请访问此<a href="https://en.wikipedia.org/wiki/Regular_expression#Basic_concepts" rel="nofollow noreferrer">question</a></p>