gpt4 book ai didi

regex - 为什么人们捍卫正则表达式语法?

转载 作者:行者123 更新时间:2023-12-04 02:30:17 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

7年前关闭。




Improve this question




有一个类似的问题,但它只是得到了人们总是给出的关于正则表达式语法的相同旧答案,但这不是这里的重点,所以请尽量不要下意识地使用关于正则表达式语法的相同旧答案。这次尝试更加原创和个性化。

正则表达式语法非常紧凑,几乎太紧凑了。就像打码打高尔夫球一样,
并且每个人都同意代码打高尔夫球在生产代码中不是一件好事。然而,大多数人接受正则表达式语法,这似乎......至少可以说是矛盾的。

所以现在人们可能听到的一些常见的辩护包括:

  • 答案:小巧
  • 柜台:在这个时代,我们不是都同意代码应该是有文化的,像“client”这样的变量比“c”更好吗?
  • 答案:这是一种“领域特定语言”
  • 柜台:所有非常容易理解、不紧凑、不神秘并且我敢说像 SQL 或 LINQ 这样漂亮的领域语言怎么样?
  • 回答:知道了就很容易理解了。
  • Counter:即使您以前从未使用过,大多数伟大的语言也很容易理解。例如,任何人都可以很容易地跳入 Python,即使他们以前从未见过它。为什么人们在 Regex 这么难看的时候为它辩护,然后继续提示 Lisps 括号?

  • 好的,现在每个人都尽量保持原创和诚实,不要只是拿出 20 年前程序员在设计正则表达式时使用的那些老生常谈的死记硬背答案。除非你真的相信它们在这个时代是有效的命题。

    编辑:作为记录,我多年前就知道 Regex,即使在今天也经常使用它们,甚至可能会理解它们。然而,我突然有一种感觉,也许是时候重新考虑我认为关于正则表达式的“真相”,并从现代的角度来看待它们。主要是因为质疑原则是进一步发展所必需的,而且因为很多新人对他们的提示很激烈,他们不能一概而论,所以我决定尝试站在新人的角度考虑一下有什么好处反对正则表达式。

    至于被 主观 ,我不认为这比 更不主观或更少与程序员相关。程序员笑话天的东西。相反,它与程序员非常相关。

    至于 议论 ,这就是问题的重点。为了获得赞成和反对正则表达式过时语法的良好论据,这可以让新人真正了解为什么正则表达式是它们的原因,甚至更好的是希望让一些新人提出更好的解决方案被正则表达式的“酷”蒙蔽了双眼。

    报价:

    The Perl 5.10 documentation for regexes has melted down into a heap of unreadable drivel because so many zany features have creeped into the syntax that no-one can write sensible documentation for it any more.



    你是想说正则表达式变得不可维护?那么作为优秀的程序员,我们应该考虑重构它们吗?也许像我们对许多其他技术所做的那样进行清理和尝试?

    最佳答案

    我要说的大部分内容都是由 Adam 和 DGM 解决的,但我认为他们没有很好地涵盖您的第二点。

    “所有非常容易理解、不紧凑、不神秘,我敢说像 SQL 或 LINQ 这样漂亮的领域语言怎么样?”

    我认为表达这个答案的一个好方法是问,你会如何使用英语来解释正则表达式?

    <TAG\b[^>]*>(.*?)</TAG>

    寻找“ '的东西,后面跟着一个'>'记住零个或多个东西,停在第一个“”

    这是一个相当简单的正则表达式。英文形式真的更容易理解吗?你能做得更好吗?

    正则表达式很难阅读,但你想从它们中得到什么也同样难以解释。

    关于regex - 为什么人们捍卫正则表达式语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/264309/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com