¿Cuál es la abreviatura correcta: "regex" o "regexp" [cerrado]

119

La mayoría de los programadores informáticos estamos bastante obsesionados con la terminología correcta. Ciertamente lo soy, especialmente porque a veces cambiar un solo carácter en una palabra puede cambiar drásticamente su significado.

Entonces ... ¿cuál es la abreviatura correcta de "expresión regular"? ¿Es "regex" o "regexp"? En Internet veo ambos usos, aunque "regex" parece ser más popular, y la lista de etiquetas aquí en SO también incluye solo "regex". Pero mucha gente también usa "regexp" en sus preguntas.

Vilx-
fuente
5
Creo que el que es más fácil de pronunciar gana - "regex" gana a "regexp" allí por una milla. Esto sucede todo el tiempo en los lenguajes humanos. Es solo mi opinión.
Hamish Grubijan
9
Honestamente, nunca lo he visto referido como regexp. Ni una sola vez en toda mi vida antes de este instante.
Anthony Pegram
4
Históricamente, por supuesto, tiene razón. La palabra "regex" es una contracción de las palabras "expresión regular". Pero las cosas que llamamos expresiones regulares son completamente diferentes a las cosas que llamamos expresiones regulares. Por ejemplo: las expresiones regulares están diseñadas para ser extremadamente simples y elegantes. Puedo escribir la sintaxis y semántica completas de expresiones regulares en 4 líneas cada una. De hecho, ni siquiera necesito líneas completas, solo 4 viñetas cada una son suficientes. En contraste, la sintaxis para los literales regexp en la especificación ECMAScript5 ocupa una página completa ...
Jörg W Mittag
2
Esto me recuerda otra pregunta 'importante': "¿Se pronuncia 'car' o 'char'?"
Ash
2
Esta pregunta parece estar fuera de tema porque se trata de terminología y no de programación.
Toto

Respuestas:

563
/regexp?/    

Matt Stephenson
fuente
107
esta respuesta está llena de victoria
meder omuraliev
12
+1 - Veo lo que hiciste allí
Nick Craver
5
@Igor: eso es precisamente lo que ?significa en una expresión regular, {0,1}. Es cierto, ¿alguna expresión regular? los motores no admiten el signo de interrogación pero apestan ;-) De todos modos, Perl lo hace, y es lo más parecido a un "estándar" para la sintaxis de expresiones regulares.
David Z
6
+1 que es un genio absoluto!
Matthew J Morrison
6
Esta no es la respuesta a la pregunta formulada.
Azat
64

Googlefight dice que la expresión regular gana, 685000 a 289000 (que es aproximadamente 2,37: 1).

Además, expresión regular es extraño decirlo en voz alta porque hay tan pocos (si los hay?) Las palabras que terminan en un sonido "-ksp", pero hay un montón de palabras que terminan en un "-ecks" sonido.

Mark Rushakoff
fuente
7
En World of Warcraft, la gente sale a ganar algo de "experiencia" (abreviatura de "puntos de experiencia"). Entonces, decir "exp" no es difícil ni suena extraño. Todo es simplemente una cuestión de cuán acostumbrado está el hablante a esa palabra.
Shi
1
Yo pronunciaría "exp" como "ex-pee" - No juego WoW ...
Adrian Lynch
1
Me gusta la respuesta, pero prefiero la pronunciación de regexp . Decir simplemente regex falta, porque no tiene en cuenta todas las consonantes al principio. Por lo general, las abreviaturas deberían hacer eso, por ejemplo. constante debe ser const , no con .
Adam Hunyadi
Los jugadores de @Shi Warcraft casi siempre leen o escriben "exp".
Navid Vafaei
24

Ambos están bien. "regex" es más común, pero "regexp" se ha utilizado más ampliamente de lo que indican las otras respuestas aquí. Algunos ejemplos:

user85509
fuente
2
Man regexp en mi mac muestra una página de manual de Tcl. Hmmm ... tal vez eso no sea un respaldo.
dmckee --- ex-moderador gatito
17

regexes más corto; por lo tanto, mejor :) Además, es más fácil de pronunciar.

houbysoft
fuente
10

La abreviatura aceptada es "regex".

"Regexp" solo se usa, en mi experiencia, en el contexto de Javascript donde el objeto que representa una expresión regular se llama realmente RegExp.

cletus
fuente
3
y en emacs. La función para encontrar una expresión regular es isearch-forward-regexp, etc.
Adam Rosenfield
2
ECMAScript en general, incluso ActionScript lo llamaRegExp
Amarghosh
1
Ruby también: ruby-doc.org/core-1.9.3/Regexp.html
qerub
1
Bueno, en el memorando original de QED, donde Dennis Ritchie y Ken Thompson introdujeron la nueva característica de las expresiones regulares (en el contexto de la edición de texto), escribieron: "En la discusión posterior," <regexp> "denotará una expresión regular . "
Sz.
6

Creo que "regex" es más común (por ejemplo, paquete Java java.util.regex). Si 10,000 fanáticos de Elvis no pueden estar equivocados, entonces votaría por eso en base a los números.

duffymo
fuente
2
Y en .NET lo esSystem.Text.RegularExpressions.Regex
Anthony Pegram
6

Según Wikipedia

En informática, las expresiones regulares, también conocidas como regex o regexp, ...

Romain Hippeau
fuente
10
¿¡¿Quién diablos vota una cita de Wikipedia?!?
Adam Harte
7
@Adam Harte: ¿Quién diablos vota las preguntas retóricas?
Andrew Grimm
@Andrew jaja, en realidad es una "pregunta de declaración de preguntas"
Adam Harte
5

"regex" es más común y lo que se usa en las preguntas frecuentes de Perl. Google da 4,5 millones de visitas para "regex" y 3,6 millones para "regexp". Wikipedia usa ambos.

¿Qué prefieres? No creo que nadie piense mal en ti si los usas indistintamente.

perro
fuente
4
Curiosamente, "perldoc perlre" (que describe las expresiones regulares en perl), dice "regex" en todas partes, pero hace referencia a "Regexp Quote-Like Operators" en perlop. "perldoc perlop" es un poco confuso y dice ambos, aunque sobre todo "regex". "perl -le 'print ref (qr / x /)'" imprime "Regexp". Perl está confundido, diría yo.
Peter V. Mørch
4

Yo diría que es "regex", esto se basa en mi propia experiencia, cómo lo escuché y la discusión de la comunidad aquí.

No puedo encontrarlo en este momento, pero esta discusión fue en meta sobre etiquetas en SO, por lo que esta es la única pregunta etiquetada como "regexp" , el resto (8441 y contando) están etiquetadas como "regex" .


Solo un pensamiento lateral aquí: ¿ importa cuál es "correcto"? Piense en el propósito aquí, ¿por qué usa alguna palabra? Comunicar. Hasta cierto punto, no importa qué es correcto o no, importa cuál puede comunicar de manera efectiva a más personas . Yo diría que fácilmente podría argumentar para usar un término incorrecto, si eso es lo que usa la mayoría de su audiencia, ya que la comunicación es su objetivo.

Nick Craver
fuente
La razón por la que no hay preguntas etiquetadas como "regexp" es porque algunos de nosotros seguimos eliminando esa etiqueta o reemplazándola con "regex" (como acabo de hacer aquí). No necesitamos dos etiquetas con el mismo significado, y "regex" tiene la ventaja en términos de las preferencias de los usuarios (aunque eso puede ser solo porque es más corto).
Alan Moore
@Alan: sí, pero ¿no crees que en este caso "regexp" TAMBIÉN fue una buena opción, porque la pregunta es sobre comparar los dos?
Vilx-
1
@ Vlix- Podría argumentar fácilmente que ninguna de las etiquetas es apropiada, ya que la pregunta es realmente sobre terminología, no sobre expresiones regulares. Pero las respuestas parecen mostrar que "regex" es el ganador de todos modos, así que ¿por qué no nos quedamos con eso?
Alan Moore
2
ACTUALIZACIÓN: Esta Q / A siguió su curso antes de que se implementara la función de "sinónimos de etiquetas" aquí en StackOverflow. Ahora las etiquetas como regexpy regular-expressionse convierten automáticamente a regex.
Alan Moore
4

Creo que es hora de dejar de pensar en términos de abreviaturas o abreviaturas. Las expresiones regulares que usamos en nuestras tareas diarias son de una raza completamente diferente de las expresiones regulares de la informática o la teoría del lenguaje formal. Es por eso que Larry Wall y otros miembros prominentes de la comunidad Perl han preferido "regex" durante años: llamarlos RegExp o RegEx, o incluso RE, sugiere una relación que ya no se aplica.

Alan Moore
fuente
3

También he escuchado / leído:

reg-exp

¡Y algunas personas lo prefieren regexporque el plural regexeses "más agradable"! (además de las razones explicadas por otras respuestas).

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp

polkduran
fuente
1
O n.pl. Regexen.
Walf
2

Ambos están bien para el discurso escrito, aunque probablemente no quieras decir "regexp" en voz alta con demasiada frecuencia;)

Para su uso en código, creo que regexp es probablemente más claro. Especialmente si usa mayúsculas como RegEx / RegExp. Un sufijo Ex se usa a menudo para indicar una versión extendida de una función más simple ... es decir, CreateWindow / CreateWindowEx en la API de Windows, por lo que RegExp podría ser un poco menos ambiguo en lo que respecta a la legibilidad del código.

Gerald
fuente
-1

Prefiero "re", pero depende del idioma. JavaScript lo enumera como "RegExp", mientras que la mayoría de los otros lenguajes simplemente lo llaman "RegExp".

Cuando busque en Google, elija la versión más corta. Pero en foros, use "re";)

vol7ron
fuente