Qual è la scorciatoia corretta - "regex" o "regexp" [chiuso]


119

La maggior parte di noi programmatori di computer è piuttosto ossessionata dalla terminologia corretta. Certamente lo sono, soprattutto perché a volte cambiare un solo carattere in una parola può cambiarne drasticamente il significato.

Allora ... qual è la scorciatoia corretta per "espressione regolare"? È "regex" o "regexp"? Su Internet vedo entrambi gli usi, anche se "regex" sembra essere più popolare, e l'elenco dei tag qui su SO include anche solo "regex". Ma molte persone usano anche "regexp" nelle loro domande.


5
Credo che vinca quello che è più facile da pronunciare: "regex" batte "regexp" di un miglio. Questo accade sempre nelle lingue umane. Questa è solo la mia opinione.
Hamish Grubijan

9
Onestamente non l'ho mai visto indicato come regexp. Non una volta in tutta la mia vita prima di questo istante.
Anthony Pegram,

4
Storicamente, ovviamente hai ragione. La parola "regex" è una contrazione delle parole "espressione regolare". Ma le cose che chiamiamo espressioni regolari sono completamente diverse dalle cose che chiamiamo regex. Ad esempio: le espressioni regolari sono progettate per essere estremamente semplici ed eleganti. Posso scrivere la sintassi completa e la semantica delle espressioni regolari in 4 righe ciascuna. In effetti, non ho nemmeno bisogno di righe complete, bastano solo 4 elenchi puntati ciascuno. Al contrario, la sintassi per i letterali regexp nella specifica ECMAScript5 occupa un'intera pagina ...
Jörg W Mittag

2
Questo mi ricorda un'altra domanda "importante": "Si pronuncia" car "o" char "?"
Ash

2
Questa domanda sembra essere fuori tema perché riguarda la terminologia e non la programmazione.
Toto

Risposte:


563
/regexp?/    


107
questa risposta è piena di vittorie
meder omuraliev

12
+1 - Vedo cosa hai fatto lì
Nick Craver

5
@Igor: Questo è esattamente quello che ?significa in un'espressione regolare, {0,1}. Vero, qualche regexp? i motori non supportano il punto interrogativo ma fanno schifo ;-) Comunque lo fa Perl, ed è la cosa più vicina a uno "standard" per la sintassi delle espressioni regolari.
David Z

6
+1 che è genio assoluto!
Matthew J Morrison

6
Questa non è la risposta alla domanda posta.
Azat

64

Googlefight dice che regex vince, da 685000 a 289000 (che è circa 2,37: 1).

Inoltre, regexp è strano da pronunciare ad alta voce perché ci sono così poche (se ce ne sono?) Parole che terminano con un suono "-ksp", ma ci sono molte parole che terminano con un suono "-ecks".


7
In World of Warcraft, le persone escono per guadagnare un po 'di "esperienza" (abbreviazione di "punti esperienza"). Quindi dire "exp" non è né difficile né suona strano. È solo questione di come è usato l'oratore a quella parola.
Shi

1
Pronunciare "exp" come "ex-pipì" - Non gioco WoW ...
Adrian Lynch

1
Mi piace la risposta, ma preferisco la pronuncia di regexp . Manca semplicemente regex , perché all'inizio non tiene conto di tutte le consonanti. Di solito le abbreviazioni dovrebbero farlo, ad es. costante dovrebbe essere const , non con .
Adam Hunyadi

I giocatori di @Shi Warcraft leggono o scrivono quasi sempre "exp".
Navid Vafaei

24

Stanno entrambi bene. "regex" è più comune, ma "regexp" è stato utilizzato più ampiamente di quanto indicano le altre risposte qui. Qualche esempio:


2
Man regexp sul mio Mac fa apparire una pagina man di Tcl. Hmmm ... forse non è un'approvazione.
dmckee --- gattino ex moderatore,

17

regexè più breve; quindi, meglio :) Inoltre, è più facile da pronunciare.


10

La scorciatoia accettata è "regex".

"Regexp" viene utilizzato, nella mia esperienza, solo nel contesto di Javascript in cui viene effettivamente chiamato l'oggetto che rappresenta un'espressione regolare RegExp.


3
e in emacs. La funzione per trovare un'espressione regolare è isearch-forward-regexp, ecc.
Adam Rosenfield,

2
ECMAScript in generale - anche ActionScript lo chiamaRegExp
Amarghosh


1
Bene, nel promemoria originale di QED, dove Dennis Ritchie e Ken Thompson hanno introdotto la nuovissima funzionalità delle espressioni regolari (nel contesto della modifica del testo), hanno scritto: "Nella discussione successiva," <regexp> "denoterà un'espressione regolare ".
Sz.

6

Penso che "regex" sia più comune (ad esempio, pacchetto Java java.util.regex). Se 10.000 fan di Elvis non possono sbagliarsi, voterei per questo sulla base dei numeri.


2
E in .NET èSystem.Text.RegularExpressions.Regex
Anthony Pegram

6

Secondo Wikipedia

In informatica, le espressioni regolari, denominate anche regex o regexp, ...


10
Chi diavolo vota a favore di una citazione da Wikipedia?!?
Adam Harte,

7
@Adam Harte: chi diavolo vota a favore delle domande retoriche?
Andrew Grimm,

@Andrew haha, in realtà è una "domanda con formulazione di domande"
Adam Harte

5

"regex" è più comune e viene utilizzato nelle FAQ di Perl. Google fornisce 4,5 milioni di visite per "regex" e 3,6 milioni per "regexp". Wikipedia utilizza entrambi.

Cosa preferisci? Non penso che nessuno ti penserà male se li usi in modo intercambiabile.


4
È interessante notare che "perldoc perlre" (che descrive le espressioni regolari in perl), dice "regex" ovunque ma fa riferimento a "Regexp Quote-Like Operators" in perlop. "perldoc perlop" è un po 'confuso e dice entrambi, sebbene per lo più "regex". "perl -le 'print ref (qr / x /)'" stampa "Regexp". Quindi perl è confuso, direi.
Peter V. Mørch

4

Direi che è "regex", si basa sulla mia esperienza, su come l'ho ascoltata e sulla discussione della comunità qui.

Non riesco a trovarlo al momento, ma questa discussione era sui meta over tag su SO, motivo per cui questa è l' unica domanda etichettata "regexp" , il resto (8441 e il conteggio) sono etichettati "regex" .


Solo un pensiero laterale qui: importa quale sia "corretto?" Pensa allo scopo qui, perché usi una parola? Comunicare. In una certa misura, non importa cosa sia corretto o meno, importa quale puoi comunicare efficacemente a più persone . Direi che potresti facilmente sostenere di usare un termine errato, se è quello che usa la maggior parte del tuo pubblico, poiché la comunicazione è il tuo obiettivo.


Il motivo per cui non ci sono domande etichettate come "regexp" è perché alcuni di noi continuano a rimuovere quel tag oa sostituirlo con "regex" (come ho appena fatto qui). Non abbiamo bisogno di due tag con lo stesso significato e "regex" ha il vantaggio in termini di preferenze degli utenti (anche se potrebbe essere solo perché è più breve).
Alan Moore

@Alan - sì, ma non pensi che in questo caso "regexp" sia stata ANCHE una buona scelta, perché la domanda riguarda il confronto tra i due?
Vilx

1
@ Vlix- Potresti facilmente sostenere che nessuno dei due tag è appropriato, poiché la domanda riguarda davvero la terminologia, non le espressioni regolari . Ma le risposte sembrano mostrare che "regex" è comunque il vincitore, quindi perché non ci limitiamo a farlo?
Alan Moore

2
AGGIORNAMENTO: Questa domanda / risposta ha fatto il suo corso prima che la funzione "sinonimi di tag" fosse implementata qui su StackOverflow. Ora i tag come regexpe regular-expressionvengono convertiti automaticamente in regex.
Alan Moore,

4

Penso che sia ora di smettere di pensare in termini di abbreviazioni o abbreviazioni. Le espressioni regolari che usiamo nelle nostre attività quotidiane sono una razza completamente diversa dalle espressioni regolari dell'informatica o dalla teoria del linguaggio formale. Questo è il motivo per cui Larry Wall e altri membri di spicco della comunità Perl hanno preferito "regex" per anni: chiamarli RegExp o RegEx, o anche RE, suggerisce una relazione che non si applica più.


3

Ho anche sentito / letto:

reg-exp

E alcune persone preferiscono regexperché il pluraleregexes è "più carino"! (oltre ai motivi spiegati da altre risposte).

.NETTO regex :System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp


1
Oppure n.pl. Regexen.
Walf

2

Entrambi vanno bene per il discorso scritto, anche se probabilmente non vorrai dire "regexp" ad alta voce troppo spesso;)

Per l'uso nel codice, penso che regexp sia probabilmente più chiaro. Soprattutto se usi le maiuscole come RegEx / RegExp. Un suffisso Ex viene spesso utilizzato per indicare una versione estesa di una funzione più semplice ... cioè CreateWindow / CreateWindowEx nell'API di Windows, quindi RegExp potrebbe essere un po 'meno ambiguo per quanto riguarda la leggibilità del codice.


-1

Preferisco "re", ma dipende dalla lingua. JavaScript lo elenca come "RegExp", mentre la maggior parte delle altre lingue lo chiama semplicemente "RegEx".

Quando cerchi su Google, scegli la versione più breve. Ma nei forum, usa "re";)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.