哪个是正确的速记-“ regex”或“ regexp”


119

我们大多数计算机程序员都对正确的术语非常着迷。我的确是这样,尤其是因为有时仅更改一个单词中的一个字符就能大大改变其含义。

那么...“正则表达式”的正确速记是什么?是“ regex”还是“ regexp”?在互联网上,我看到了两种用法,尽管“ regex”似乎更受欢迎,并且SO上的标签列表中也仅包含“ regex”。但是很多人在他们的问题中也使用“ regexp”。


5
我相信最容易发音的一个词-“ regex”在此击败“ regexp”。这种情况一直以人类语言发生。那只是我的意见。
Hamish Grubijan

9
老实说,我从未见过它被称为正则表达式。在这一刻之前,我一生中没有一次。
安东尼·佩格拉姆

4
从历史上看,您当然是正确的。单词“ regex”是单词“ regular expression”的缩写。但是我们称之为正则表达式的事物与我们称之为正则表达式的事物完全不同。例如:正则表达式设计得极其简单而优雅。我可以每行4行写下正则表达式的完整语法和语义。实际上,我什至不需要实线,每个仅4个要点就足够了。与此相反,在ECMAScript5规范文字正则表达式的语法占据了一整页...
约尔格W¯¯米塔格

2
这使我想起了另一个“重要”问题:“它的发音是'car'还是'char'?”
灰烬

2
这个问题似乎离题,因为它是关于术语而非编程的。
Toto

Answers:



64

Googlefight表示regex胜率是685000至289000(约2.37:1)。

另外,正则表达式很奇怪地大声说出来,因为很少有(如果有的话)以“ -ksp”声音结尾的单词,但是有很多以“ -ecks”声音结尾的单词。


7
在《魔兽世界》中,人们外出获得一些“经验值”(“ experience points”的简称)。因此,说“ exp”既不难也不奇怪。这完全取决于说话者对这个词的使用程度。
2012年

1
我将“ exp”发音为“ ex-pee”-我不玩魔兽...
Adrian Lynch

1
我喜欢答案,但我更喜欢regexp的发音。缺少只说正则表达式的原因,因为它在一开始并没有考虑所有辅音。通常,缩写应该这样做,例如。常量应该是const,而不是con
亚当·休亚迪

@Shi魔兽玩家几乎总是读或写“ exp”。
Navid Vafaei

24

他们都还好。“ regex”更常见,但是“ regexp”的使用比此处给出的其他答案更广泛。一些例子:


2
我的Mac上的man regexp打开了Tcl手册页。嗯...也许这不是背书。
dmckee ---前主持人小猫


10

公认的缩写是“ regex”。

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


3
和在emacs中。查找一个正则表达式的功能是isearch-forward-regexp,等等
亚当罗森菲尔德

2
ECMAScript一般-甚至ActionScript都将其称为RegExp
Amarghosh 2010年


1
好吧,在QED 的原始备忘录中,Dennis Ritchie和Ken Thompson引入了正则表达式的全新功能(在文本编辑的上下文中),他们写道:“在随后的讨论中,“ <regexp>”将表示正则表达式”。
Sz。

6

我认为“ regex”更为常见(例如Java package java.util.regex)。如果10,000名Elvis粉丝不会错的话,那么我会根据数字来投票支持。


2
在.NET中,这是System.Text.RegularExpressions.Regex
Anthony Pegram 2010年


5

“ regex”更常见,它在Perl FAQ中使用。Google为“ regex”提供了450万次点击,为“ regexp”提供了360万次点击。维基百科同时使用两者。

你喜欢哪个?如果您将它们互换使用,我认为不会有人对您有不好的想法。


4
有趣的是,足够多的“ perldoc perlre”(在perl中描述正则表达式),到处都说“ regex”,但在perlop中引用了“ Regexp Quote-Like Operators”。Ans说,“ perldoc perlop”有点混乱,尽管大多是“ regex”。“ perl -le'print ref(qr / x /)'”打印出“ Regexp”。我会说,所以perl感到困惑。
Peter V.Mørch2013年

4

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

我目前无法找到它,但是这个讨论是关于SO上的meta over标签的,这就是为什么这是唯一标记为“ regexp”的问题,其余的(8441和计数)都标记为“ regex”的原因


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


没有标记为“ regexp”的问题的原因是因为我们中有些人不断删除该标记或将其替换为“ regex”(就像我在这里所做的那样)。我们不需要两个具有相同含义的标签,“ regex”在用户的偏好方面具有优势(尽管可能只是因为它更短)。
艾伦·摩尔

@Alan-是的,但是您不认为在这种情况下“ regexp”也是一个不错的选择,因为问题在于将两者进行比较?
Vilx- 2010年

1
@ Vlix-您可以轻松地辩称这两个标记都不适用,因为问题实际上是关于术语而不是正则表达式。但是响应似乎表明“ regex”仍然是赢家,所以我们为什么不坚持呢?
艾伦·摩尔

2
更新:在此处的“标记同义词”功能在StackOverflow上实现之前,已完成此问题。现在,像regexpregular-expression这样的标签会自动转换为regex
艾伦·摩尔

4

我认为该是时候放弃速记或缩写的思考了。我们在日常工作中使用的正则表达式与计算机科学或形式语言理论的正则表达式完全不同。这就是为什么拉里·沃尔(Larry Wall)和Perl社区的其他知名成员多年来都喜欢“ regex”的原因:称它们为RegExp或RegEx,甚至RE都暗示了一种不再适用的关系。


3

我也听说过:

reg-exp

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

.NET regexSystem.Text.RegularExpressions.Regex

JavaScript regexpRegExp


1
或n.pl. Regexen。
Walf

2

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

对于代码,我认为regexp可能更清晰。特别是如果您使用大写字母,例如RegEx / RegExp。Ex后缀通常用于指示简单功能的扩展版本……即Windows API中的CreateWindow / CreateWindowEx,因此就代码的可读性而言,RegExp可能会少一些歧义。


-1

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.