【问题标题】:Which is the correct shorthand - "regex" or "regexp" [closed]哪个是正确的速记 - “正则表达式”或“正则表达式”[关闭]
【发布时间】:2011-03-04 17:57:42
【问题描述】:

我们大多数计算机程序员都非常痴迷于正确的术语。我当然是,尤其是因为有时只改变一个单词中的一个字符会极大地改变它的含义。

那么...“正则表达式”的正确简写是什么?它是“正则表达式”还是“正则表达式”?在互联网上我看到了这两种用法,虽然“正则表达式”似乎更受欢迎,而且这里的标签列表也只包括“正则表达式”。但是很多人也在他们的问题中使用“正则表达式”。

【问题讨论】:

  • 我相信最容易发音的那个会赢——“regex”比“regexp”高一英里。这在人类语言中一直发生。这只是我的看法。
  • 老实说,我从未见过它被称为正则表达式。在这一刻之前,我一生中没有一次。
  • 从历史上看,您当然是正确的。 “正则表达式”一词是“正则表达式”一词的缩写。但是我们称之为正则表达式的事物与我们称之为正则表达式的事物完全不同。例如:正则表达式被设计得非常简单和优雅。我可以用 4 行写下正则表达式的完整语法和语义。事实上,我什至不需要完整的行,每行只需要 4 个要点就足够了。相比之下,ECMAScript5 规范中的正则表达式文字的语法占据了整个页面...
  • 这让我想起了另一个“重要”问题:“它的发音是 'car' 还是 'char'?”
  • 这个问题似乎是题外话,因为它是关于术语而不是编程。

标签: regex terminology


【解决方案1】:

我认为是时候停止考虑速记或缩写了。我们在日常任务中使用的正则表达式与计算机科学或形式语言理论的正则表达式完全不同。这就是为什么 Larry Wall 和 Perl 社区的其他杰出成员多年来一直偏爱“正则表达式”的原因:称它们为 RegExp 或 RegEx,甚至是 RE,表明一种不再适用的关系。

【讨论】:

    【解决方案2】:

    我也听说过/读过:

    reg-exp

    有些人更喜欢regex,因为复数regexes 更“好”! (除了其他答案解释的原因)。

    .NET regex : System.Text.RegularExpressions.Regex

    JavaScript regexp : RegExp

    【讨论】:

    • 或 n.pl。正则表达式。
    【解决方案3】:
    /regexp?/    
    

    【讨论】:

    • 这个答案充满了胜利
    • +1 - 我知道你在那里做了什么
    • @Igor:这正是? 在正则表达式中的含义,{0,1}。是的,一些正则表达式?引擎不支持问号,但它们很烂 ;-) 无论如何 Perl 支持,它是最接近正则表达式语法“标准”的东西。
    • +1 那绝对是天才!
    • 这不是问题的答案。
    【解决方案4】:

    我更喜欢“re”,但这取决于语言。 JavaScript 将其列为“RegExp”,而大多数其他语言只是将其称为“RegEx”。

    使用谷歌搜索时,请使用较短的版本。但在论坛中,使用“re”;)

    【讨论】:

      【解决方案5】:

      他们都很好。 “正则表达式”更常见,但“正则表达式”的使用范围比这里的其他答案更广泛。一些例子:

      【讨论】:

      • 我的 mac 上的 Man regexp 会打开一个 Tcl 手册页。嗯……也许这不是一种认可。
      【解决方案6】:

      我会说它是“正则表达式”,这是基于我自己的经验、我是如何听到的,以及这里的社区讨论。

      目前我找不到它,但这个讨论是关于 SO 上的 meta over tags,这就是为什么这是 only question tagged "regexp",其余的(8441 和计数)被标记为 "regex"


      这里只是想一想:“正确”是否重要?想想这里的目的,你为什么用任何词?进行交流。在某种程度上,正确与否并不重要,重要的是您可以有效地与更多人交流。我想说的是,如果您的大多数受众使用的是不正确的术语,那么您很容易争辩使用不正确的术语,因为沟通是您的目标。

      【讨论】:

      • 之所以没有标记为“regexp”的问题是因为我们中的一些人不断删除该标签或将其替换为“regex”(就像我在这里所做的那样)。我们不需要两个具有相同含义的标签,而“正则表达式”在用户偏好方面具有优势(尽管这可能只是因为它更短)。
      • @Alan - 是的,但您不认为在这种情况下“正则表达式”也是一个不错的选择,因为问题在于比较两者?
      • @Vlix- 你可以很容易地争辩说 neither 标签是合适的,因为问题实际上是关于术语,而不是正则表达式。但是响应似乎表明“正则表达式”无论如何都是赢家,所以我们为什么不坚持下去呢?
      • 更新:在 StackOverflow 上实现“标签同义词”功能之前,此 Q/A 已经完成。现在regexpregular-expression 等标签会自动转换为regex
      【解决方案7】:

      两者都适合书面讨论,尽管您可能不想经常大声说“regexp”;)

      对于在代码中使用,我认为 regexp 可能更清晰。特别是如果您使用大写,例如 RegEx/RegExp。 Ex 后缀通常用于表示更简单函数的扩展版本...即 Windows API 中的 CreateWindow/CreateWindowEx,因此就代码的可读性而言,RegExp 可能不那么含糊。

      【讨论】:

        【解决方案8】:

        接受的速记是“正则表达式”。

        根据我的经验,“Regexp”仅在 Javascript 上下文中使用,其中表示正则表达式的对象实际上称为 RegExp

        【讨论】:

        • 在 emacs 中。查找正则表达式的函数是isearch-forward-regexp
        • 一般的 ECMAScript - 甚至 ActionScript 都称它为 RegExp
        • 嗯,在 QED 的 original memo 中,Dennis Ritchie 和 Ken Thompson 介绍了正则表达式的全新功能(在文本编辑的上下文中),他们写道:“在随后讨论,“”将表示正则表达式。”
        【解决方案9】:

        “正则表达式”更常见,在 Perl 常见问题解答中使用。 Google 为“regex”提供了 450 万次点击,为“regexp”提供了 360 万次点击。维基百科两者都使用。

        你喜欢什么?如果您可以互换使用它们,我认为没有人会认为您不好。

        【讨论】:

        • 有趣的是,“perldoc perlre”(描述 perl 中的正则表达式)到处都说“regex”,但在 perlop 中引用“Regexp Quote-Like Operators”。 “perldoc perlop”有点困惑,虽然主要是“正则表达式”,但两者都说。 “perl -le 'print ref(qr/x/)'” 打印出“Regexp”。所以 perl 很困惑,我会说。
        【解决方案10】:

        根据Wikipedia

        在计算中,正则表达式, 也称为正则表达式或正则表达式, ...

        【讨论】:

        • 到底谁投票赞成维基百科的引用?!?
        • @Adam Harte:到底是谁投票赞成反问?
        • @Andrew哈哈,其实是一个“问题陈述题”
        【解决方案11】:

        regex 更短;因此,更好:) 而且,它更容易发音。

        【讨论】:

          【解决方案12】:

          我认为“正则表达式”更常见(例如,Java 包java.util.regex)。如果 10,000 名猫王粉丝不会错,那么我会根据数字的力量投票。

          【讨论】:

          • 在 .NET 中是System.Text.RegularExpressions.Regex
          【解决方案13】:

          Googlefightregex 获胜,685000 到 289000(大约 2.37:1)。

          另外,regexp 大声说出来很奇怪,因为以“-ksp”结尾的单词很少(如果有的话?),但有很多单词以 a 结尾“-ecks”的声音。

          【讨论】:

          • 在魔兽世界中,人们出去是为了获得一些“exp”(“experience points”的缩写)。所以说“exp”既不难也不听起来很奇怪。这只是说话者对该词的使用程度的问题。
          • 我会把“exp”读成“ex-pee”——我不玩魔兽世界...
          • 我喜欢这个答案,但我更喜欢 regexp 的发音。简单地说 regex 是缺乏的,因为它没有在开头考虑所有辅音。通常缩写应该这样做,例如。 constant 应该是 const,而不是 con
          • @Shi魔兽玩家几乎总是读或写“exp”。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-04-27
          • 1970-01-01
          • 2017-11-13
          • 2016-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多