Welches ist die richtige Abkürzung - "Regex" oder "Regexp" [geschlossen]

119

Die meisten von uns Computerprogrammierern sind ziemlich besessen von der richtigen Terminologie. Das bin ich sicherlich, vor allem, weil manchmal das Ändern nur eines Zeichens in einem Wort seine Bedeutung drastisch ändern kann.

Also ... was ist die richtige Abkürzung für "regulärer Ausdruck"? Ist es "Regex" oder "Regexp"? Im Internet sehe ich beide Verwendungen, obwohl "Regex" populärer zu sein scheint und die Tag-Liste hier auf SO auch nur "Regex" enthält. Aber viele Leute verwenden auch "Regexp" in ihren Fragen.

Vilx-
quelle
5
Ich glaube, dass derjenige, der am einfachsten auszusprechen ist, gewinnt - "Regex" schlägt dort "Regexp" um eine Meile. Dies geschieht ständig in menschlichen Sprachen. Das ist nur meine Meinung.
Hamish Grubijan
9
Ich habe ehrlich gesagt noch nie gesehen, dass es als regulärer Ausdruck bezeichnet wird. Nicht ein einziges Mal in meinem ganzen Leben vor diesem Augenblick.
Anthony Pegram
4
Historisch gesehen haben Sie natürlich Recht. Das Wort "Regex" ist eine Kontraktion der Wörter "regulärer Ausdruck". Aber die Dinge , die wir reguläre Ausdrücke nennen, sind völlig anders als die Dinge, die wir Regex nennen. Zum Beispiel: Reguläre Ausdrücke sind äußerst einfach und elegant gestaltet. Ich kann die vollständige Syntax und Semantik regulärer Ausdrücke in jeweils 4 Zeilen aufschreiben. Tatsächlich brauche ich nicht einmal volle Linien, nur 4 Aufzählungspunkte reichen aus. Im Gegensatz dazu nimmt die Syntax für Regexp-Literale in der ECMAScript5-Spezifikation eine ganze Seite ein ...
Jörg W Mittag
2
Dies erinnert mich an eine andere 'wichtige' Frage: "Wird es 'Auto' oder 'Char' ausgesprochen?"
Ash
2
Diese Frage scheint nicht zum Thema zu gehören, da es um Terminologie und nicht um Programmierung geht.
Toto

Antworten:

562
/regexp?/    

Matt Stephenson
quelle
107
Diese Antwort ist voll von Win
Meder Omuraliev
12
+1 - Ich sehe, was du dort getan hast
Nick Craver
5
@Igor: genau das ?bedeutet in einem regulären Ausdruck , {0,1}. Stimmt, ein regulärer Ausdruck? Engines unterstützen das Fragezeichen nicht, aber sie saugen ;-) Wie auch immer, Perl tut es und es kommt einem "Standard" für die Syntax regulärer Ausdrücke am nächsten.
David Z
6
+1 das ist absolutes Genie!
Matthew J Morrison
6
Dies ist nicht die Antwort auf die gestellte Frage.
Azat
64

Googlefight sagt Regex Sieg, 685.000 bis 289.000 (die etwa 2,37: 1).

Es ist auch seltsam , Regexp laut auszusprechen , weil es so wenige (wenn überhaupt?) Wörter gibt, die mit einem "-ksp" -Sound enden, aber es gibt viele Wörter, die mit einem "-ecks" -Sound enden.

Mark Rushakoff
quelle
7
In World of Warcraft gehen die Leute aus, um "exp" (kurz für "Erfahrungspunkte") zu erhalten. "Exp" zu sagen ist also weder schwer noch klingt es komisch. Es ist alles nur eine Frage der Verwendung des Sprechers für dieses Wort.
Shi
1
Ich würde "exp" als "ex-pee" aussprechen - ich spiele kein WoW ...
Adrian Lynch
1
Ich mag die Antwort, aber ich bevorzuge die Aussprache von Regexp . Es fehlt, einfach Regex zu sagen , weil es am Anfang nicht alle Konsonanten berücksichtigt. Normalerweise sollten Abkürzungen dies tun, z. Konstante sollte const sein , nicht con .
Adam Hunyadi
@ Shi Warcraft-Spieler lesen oder schreiben fast immer "exp".
Navid Vafaei
24

Sie sind beide in Ordnung. "Regex" ist häufiger, aber "Regexp" wurde häufiger verwendet als die anderen Antworten hier angeben. Einige Beispiele:

user85509
quelle
2
Man regexp auf meinem Mac zeigt eine Tcl-Manpage an. Hmmm ... vielleicht ist das keine Bestätigung.
dmckee --- Ex-Moderator Kätzchen
17

regexist kürzer; deshalb besser :) Auch ist es einfacher auszusprechen.

houbysoft
quelle
10

Die akzeptierte Abkürzung ist "Regex".

"Regexp" wird meiner Erfahrung nach nur im Kontext von Javascript verwendet, wo das Objekt, das einen regulären Ausdruck darstellt, tatsächlich aufgerufen wird RegExp.

Cletus
quelle
3
und in Emacs. Die Funktion zum Finden eines regulären Ausdrucks ist isearch-forward-regexpusw.
Adam Rosenfield
2
ECMAScript im Allgemeinen - sogar ActionScript nennt esRegExp
Amarghosh
1
Nun, in dem ursprünglichen Memo von QED, in dem Dennis Ritchie und Ken Thompson die brandneue Funktion regulärer Ausdrücke (im Zusammenhang mit der Textbearbeitung) einführten
Gr.
6

Ich denke, "Regex" ist häufiger (zB Java-Paket java.util.regex). Wenn 10.000 Elvis-Fans sich nicht irren können, würde ich aufgrund der Zahlen dafür stimmen.

Duffymo
quelle
2
Und in .NET ist esSystem.Text.RegularExpressions.Regex
Anthony Pegram
6

Laut Wikipedia

Beim Rechnen werden reguläre Ausdrücke, auch als Regex oder Regexp bezeichnet, ...

Romain Hippeau
quelle
10
Wer zum Teufel stimmt ein Zitat aus Wikipedia ab?!?
Adam Harte
7
@Adam Harte: Wer zum Teufel stimmt rhetorischen Fragen zu?
Andrew Grimm
@ Andrew haha, es ist eigentlich eine "Frage Aussage Frage"
Adam Harte
5

"Regex" ist häufiger und wird in den Perl-FAQ verwendet. Google gibt 4,5 Millionen Treffer für "Regex" und 3,6 Millionen für "Regexp". Wikipedia verwendet beide.

Was bevorzugen Sie? Ich glaube nicht, dass irgendjemand schlecht über dich denken wird, wenn du sie austauschbar verwendest.

dawg
quelle
4
Interessanterweise sagt "perldoc perlre" (das reguläre Ausdrücke in Perl beschreibt) überall "Regex", verweist aber in Perlop auf "Regexp Quote-Like Operators". "perldoc perlop" ist ein wenig verwirrt und sagt beides, obwohl meistens "Regex". "perl -le 'print ref (qr / x /)'" druckt "Regexp" aus. Perl ist also verwirrt, würde ich sagen.
Peter V. Mørch
4

Ich würde sagen, es ist "Regex", dies basiert auf meiner eigenen Erfahrung, wie ich es gehört habe und der Community-Diskussion hier.

Ich kann es im Moment nicht finden, aber diese Diskussion befasste sich mit Meta-Over-Tags auf SO, weshalb dies die einzige Frage ist, die mit "Regexp" gekennzeichnet ist , der Rest (8441 und Zählen) mit "Regex" .


Nur ein Nebengedanke hier: Ist es wichtig, was "richtig" ist? Denken Sie über den Zweck hier nach, warum verwenden Sie ein Wort? Kommunizieren. Bis zu einem gewissen Grad spielt es keine Rolle, was richtig ist oder nicht, es ist wichtig, welche Sie effektiv mit mehr Menschen kommunizieren können . Ich würde sagen, Sie könnten leicht argumentieren, einen falschen Begriff zu verwenden, wenn dies die Mehrheit Ihres Publikums verwendet, da Kommunikation Ihr Ziel ist.

Nick Craver
quelle
Der Grund, warum es keine Fragen mit dem Tag "Regexp" gibt, ist, dass einige von uns dieses Tag immer wieder entfernen oder durch "Regex" ersetzen (wie ich es gerade hier getan habe). Wir brauchen keine zwei Tags mit der gleichen Bedeutung, und "Regex" hat den Vorteil in Bezug auf die Benutzereinstellungen (obwohl dies möglicherweise nur daran liegt, dass es kürzer ist).
Alan Moore
@Alan - ja, aber denkst du nicht, dass "regexp" in diesem Fall AUCH eine gute Wahl war, weil es um den Vergleich der beiden geht?
Vilx
1
@ Vlix- Sie könnten genauso gut argumentieren, dass keines der beiden Tags angemessen ist, da es sich bei der Frage wirklich um Terminologie und nicht um reguläre Ausdrücke handelt. Aber die Antworten scheinen zu zeigen, dass "Regex" sowieso der Gewinner ist. Warum bleiben wir also nicht einfach dabei?
Alan Moore
2
UPDATE: Diese Frage / Antwort wurde ausgeführt, bevor die Funktion "Tag-Synonyme" hier bei StackOverflow implementiert wurde. Jetzt mögen Tags regexpund regular-expressionwerden automatisch in konvertiert regex.
Alan Moore
4

Ich denke, es ist Zeit aufzuhören, in Kurz- oder Abkürzungen zu denken. Die regulären Ausdrücke, die wir für unsere täglichen Aufgaben verwenden, unterscheiden sich grundlegend von den regulären Ausdrücken der Informatik oder der formalen Sprachtheorie. Aus diesem Grund bevorzugen Larry Wall und andere prominente Mitglieder der Perl-Community seit Jahren "Regex": Wenn man sie RegExp oder RegEx oder sogar RE nennt, schlägt man eine Beziehung vor, die nicht mehr gilt.

Alan Moore
quelle
3

Ich habe auch gehört / gelesen:

reg-exp

Und manche Leute bevorzugen es, regexweil der Plural regexes"schöner" ist! (zusätzlich zu den Gründen, die durch andere Antworten erklärt werden).

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp

polkduran
quelle
1
Oder n.pl. Regexen.
Walf
2

Beide eignen sich gut für den schriftlichen Diskurs, obwohl Sie wahrscheinlich nicht zu oft laut "regexp" sagen möchten;)

Für die Verwendung in Code denke ich, dass regulärer Ausdruck wahrscheinlich klarer ist. Insbesondere, wenn Sie Großschreibung wie RegEx / RegExp verwenden. Ein Ex-Suffix wird häufig verwendet, um eine erweiterte Version einer einfacheren Funktion anzugeben ... dh CreateWindow / CreateWindowEx in der Windows-API, sodass RegExp in Bezug auf die Lesbarkeit von Code möglicherweise weniger eindeutig ist.

Gerald
quelle
-1

Ich bevorzuge "re", aber es hängt von der Sprache ab. JavaScript listet es als "RegExp" auf, während die meisten anderen Sprachen es einfach "RegEx" nennen.

Wenn Sie googeln, wählen Sie die kürzere Version. Aber in Foren benutze "re";)

vol7ron
quelle