Qual é o atalho correto - “regex” ou “regexp” [fechado]

119

A maioria de nós, programadores de computador, é obcecada pela terminologia correta. Certamente estou, especialmente porque às vezes mudar apenas um caractere em uma palavra pode mudar drasticamente seu significado.

Então ... qual é a abreviação correta para "expressão regular"? É "regex" ou "regexp"? Na Internet, vejo os dois usos, embora "regex" pareça ser mais popular, e a lista de tags aqui no SO também inclui apenas "regex". Mas muitas pessoas também usam "regexp" em suas perguntas.

Vilx-
fonte
5
Eu acredito que aquele que é mais fácil de pronunciar vence - "regex" bate "regexp" por uma milha. Isso acontece o tempo todo em línguas humanas. Essa é apenas minha opinião.
Hamish Grubijan
9
Sinceramente, nunca vi isso referido como regexp. Nenhuma vez em toda a minha vida antes deste instante.
Anthony Pegram
4
Historicamente, você está certo, é claro. A palavra "regex" é uma contração das palavras "expressão regular". Mas as coisas que chamamos de expressões regulares são completamente diferentes das coisas que chamamos de regex. Por exemplo: expressões regulares são projetadas para serem extremamente simples e elegantes. Posso escrever a sintaxe completa e a semântica das expressões regulares em 4 linhas cada. Na verdade, eu nem preciso de linhas completas, apenas 4 marcadores cada são suficientes. Em contraste, a sintaxe para literais regexp na especificação ECMAScript5 ocupa uma página inteira ...
Jörg W Mittag
2
Isso me lembra de outra pergunta 'importante': "É pronunciado 'carro' ou 'char'?"
Ash
2
Esta questão parece estar fora do tópico porque se trata de terminologia e não de programação.
Toto

Respostas:

563
/regexp?/    

Matt Stephenson
fonte
107
esta resposta está cheia de vitórias
meder omuraliev
12
+1 - Eu vejo o que você fez lá
Nick Craver
5
@Igor: isso é exatamente o que ?significa em uma expressão regular {0,1},. É verdade, alguma regexp? motores não suportam o ponto de interrogação, mas são péssimos ;-) De qualquer forma, Perl suporta, e é a coisa mais próxima de um "padrão" para sintaxe de expressão regular.
David Z
6
1 que é gênio absoluto!
Matthew J Morrison
6
Esta não é a resposta à pergunta feita.
Azat
64

O Googlefight diz que regex vence, de 685.000 a 289.000 (que é cerca de 2,37: 1).

Além disso, é estranho dizer regexp em voz alta porque há tão poucas (se houver?) Palavras que terminam com um som "-ksp", mas há muitas palavras que terminam com um som "-ecks".

Mark Rushakoff
fonte
7
No World of Warcraft, as pessoas saem para ganhar alguns "exp" (abreviação de "pontos de experiência"). Portanto, dizer "exp" não é difícil nem parece estranho. É tudo simplesmente uma questão de quão acostumado o falante está com essa palavra.
Shi
1
Eu pronunciaria "exp" como "ex-xixi" - Eu não jogo WoW ...
Adrian Lynch
1
Gosto da resposta, mas prefiro a pronúncia do regexp . Falta dizer simplesmente regex , porque não leva em conta todas as consoantes no início. Normalmente, as abreviações devem fazer isso, por exemplo. constante deve ser const , não con .
Adam Hunyadi
Jogadores @Shi Warcraft quase sempre lêem ou escrevem "exp".
Navid Vafaei
24

Ambos estão bem. "regex" é mais comum, mas "regexp" foi usado mais amplamente do que as outras respostas aqui indicam. Alguns exemplos:

user85509
fonte
2
Man regexp no meu mac exibe uma página do manual Tcl. Hmmm ... talvez isso não seja um endosso.
dmckee --- ex-moderador gatinho
17

regexé mais curto; portanto, melhor :) Além disso, é mais fácil de pronunciar.

houbysoft
fonte
10

A abreviação aceita é "regex".

"Regexp" só é usado, em minha experiência, no contexto de Javascript, onde o objeto que representa uma expressão regular é realmente chamado RegExp.

cletus
fonte
3
e no emacs. A função para encontrar uma expressão regular é isearch-forward-regexp, etc.
Adam Rosenfield
2
ECMAScript em geral - até mesmo o ActionScript o chamaRegExp
Amarghosh
1
Ruby também: ruby-doc.org/core-1.9.3/Regexp.html
qerub
1
Bem, no memorando original do QED, onde Dennis Ritchie e Ken Thompson apresentaram o novo recurso das expressões regulares (no contexto da edição de texto), eles escreveram: "Na discussão subsequente," <regexp> "denotará uma expressão regular . "
Sz.
6

Acho que "regex" é mais comum (por exemplo, pacote Java java.util.regex ). Se 10.000 fãs de Elvis não podem estar errados, eu votaria nisso com base nos números.

duffymo
fonte
2
E no .NET éSystem.Text.RegularExpressions.Regex
Anthony Pegram
6

De acordo com a Wikipedia

Na computação, expressões regulares, também conhecidas como regex ou regexp, ...

Romain Hippeau
fonte
10
Quem diabos vota uma citação da Wikipedia?!?
Adam Harte
7
@Adam Harte: Quem vota nas perguntas retóricas?
Andrew Grimm
@Andrew haha, na verdade é uma "pergunta declaração pergunta"
Adam Harte
5

"regex" é mais comum e o que é usado no FAQ do Perl. O Google fornece 4,5 milhões de resultados para "regex" e 3,6 milhões para "regexp". A Wikipedia usa ambos.

O que você prefere? Acho que ninguém vai pensar mal de você se você usá-los de forma intercambiável.

dawg
fonte
4
Curiosamente, "perldoc perlre" (que descreve expressões regulares em perl), diz "regex" em todos os lugares, mas faz referência a "Operadores semelhantes a citações de Regexp" em perlop. "perldoc perlop" é um pouco confuso e diz ambos, embora principalmente "regex". "perl -le 'print ref (qr / x /)'" imprime "Regexp". Perl está confuso, eu diria.
Peter V. Mørch
4

Eu diria que é "regex", baseado em minha própria experiência, como ouvi falar e na discussão da comunidade aqui.

Não consigo encontrar no momento, mas essa discussão foi sobre meta over tags no SO, e é por isso que esta é a única pergunta marcada como "regexp" , o resto (8441 e contando) é marcado como "regex" .


Apenas um pensamento lateral aqui: isso importa que é "correto?" Pense no propósito aqui, por que você usa alguma palavra? Comunicar. Até certo ponto, não importa o que é correto ou não, importa qual você pode comunicar efetivamente a mais pessoas . Eu diria que você poderia facilmente argumentar para usar um termo incorreto, se é o que a maioria do seu público usa, já que a comunicação é o seu objetivo.

Nick Craver
fonte
O motivo de não haver perguntas com a tag "regexp" é porque alguns de nós continuam removendo essa tag ou substituindo-a por "regex" (como acabei de fazer aqui). Não precisamos de duas tags com o mesmo significado, e "regex" tem a vantagem em termos de preferências dos usuários (embora isso possa ser apenas porque é mais curto).
Alan Moore
@Alan - sim, mas você não acha que neste caso "regexp" TAMBÉM foi uma boa escolha, porque a questão é comparar os dois?
Vilx-
1
@ Vlix- Você poderia facilmente argumentar que nenhuma das tags é apropriada, uma vez que a questão é realmente sobre terminologia, não regexes. Mas as respostas parecem mostrar que "regex" é o vencedor de qualquer maneira, então por que não ficamos com isso?
Alan Moore
2
ATUALIZAÇÃO: Este Q / A seguiu seu curso antes que o recurso "sinônimos de tag" fosse implementado aqui no StackOverflow. Agora as tags gostam regexpe regular-expressionsão convertidas automaticamente para regex.
Alan Moore
4

Acho que é hora de parar de pensar em termos de abreviações ou abreviações. As regexes que usamos em nossas tarefas diárias são uma raça totalmente diferente das expressões regulares da ciência da computação ou da teoria da linguagem formal. É por isso que Larry Wall e outros membros proeminentes da comunidade Perl preferem "regex" há anos: chamá-los de RegExp ou RegEx, ou mesmo RE, sugere um relacionamento que não se aplica mais.

Alan Moore
fonte
3

Eu também ouvi / li:

reg-exp

E algumas pessoas preferem regexporque o plural regexesé "mais legal"! (além dos motivos explicados por outras respostas).

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp

Polkduran
fonte
1
Ou n.pl. Regexen.
Walf de
2

Ambos são bons para discurso escrito, embora você provavelmente não queira dizer "regexp" em voz alta com muita frequência;)

Para uso em código, acho que regexp é provavelmente mais claro. Especialmente se você usar letras maiúsculas, como RegEx / RegExp. Um sufixo Ex é freqüentemente usado para indicar uma versão estendida de uma função mais simples ... ou seja, CreateWindow / CreateWindowEx na API do Windows, então RegExp pode ser um pouco menos ambíguo no que diz respeito à legibilidade do código.

Gerald
fonte
-1

Prefiro "re", mas depende do idioma. JavaScript o lista como "RegExp", enquanto a maioria das outras linguagens simplesmente o chama de "RegEx".

Ao pesquisar no Google, escolha a versão mais curta. Mas em fóruns, use "re";)

Vol7ron
fonte