代码之家  ›  专栏  ›  技术社区  ›  jwvh

性格类:渴望消极还是懒惰装腔作势?

  •  0
  • jwvh  · 技术社区  · 6 年前

    如果我想捕捉到一个终点的所有东西,我相信这两个结果是相等的。

    ([^=]+)=
    (.+?)=
    

    除了你的代码高尔夫分数,有什么理由比另一个更喜欢一个?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Sebastian Proske    6 年前

    否定的字符类模式将在一个步骤中匹配其内容,而懒惰的模式将逐个扩展字符,这将使前者的性能更好。

    注意断线, . 可能或可能不涉及换行符,这取决于引擎和修饰符,[^]将涉及几乎所有引擎。

    如果模式中有更多的东西, .+? 可能会扩展到边框字符上,而 [^=]+ 永远不会。例如。 ([^=]+)=3 (.+?)=3 将以不同的方式匹配 1=2=3 .