Jakie jest poprawne skrócenie - „regex” czy „regexp” [zamknięte]


119

Większość z nas, programistów komputerowych, ma obsesję na punkcie poprawnej terminologii. Z pewnością tak, zwłaszcza, że ​​czasami zmiana tylko jednego znaku w słowie może drastycznie zmienić jego znaczenie.

Więc ... jaki jest poprawny skrót wyrażenia „wyrażenie regularne”? Czy to „regex” czy „regexp”? W Internecie widzę oba zastosowania, chociaż „regex” wydaje się być bardziej popularne, a lista tagów tutaj w SO zawiera również tylko „regex”. Ale wiele osób używa również „regexp” w swoich pytaniach.


5
Uważam, że wygrywa ten, który jest najłatwiejszy do wymówienia - „regex” bije tam „regexp” o milę. Dzieje się to cały czas w ludzkich językach. To tylko moja opinia.
Hamish Grubijan

9
Szczerze mówiąc, nigdy nie widziałem, aby było to określane jako regexp. Ani razu w całym moim życiu przed tą chwilą.
Anthony Pegram

4
Historycznie rzecz biorąc, masz oczywiście rację. Słowo „regex” jest skrótem od słów „wyrażenie regularne”. Ale rzeczy , które nazywamy wyrażeniami regularnymi, są zupełnie inne niż rzeczy, które nazywamy wyrażeniami regularnymi. Na przykład: wyrażenia regularne mają być niezwykle proste i eleganckie. Potrafię zapisać pełną składnię i semantykę wyrażeń regularnych w 4 wierszach. Właściwie nie potrzebuję nawet pełnych linii, wystarczą tylko 4 wypunktowane punkty. Z kolei składnia literałów regexp w specyfikacji ECMAScript5 zajmuje całą stronę ...
Jörg W Mittag,

2
To przypomina mi inne „ważne” pytanie: „Czy wymawia się„ samochód ”czy„ char ”?
Ash

2
To pytanie wydaje się nie na temat, ponieważ dotyczy terminologii, a nie programowania.
Toto

Odpowiedzi:


563
/regexp?/    


107
ta odpowiedź jest pełna zwycięstwa
meder omuraliev

12
+1 - Widzę, co tam zrobiłeś
Nick Craver

5
@Igor: To jest właśnie to, co ?oznacza w wyrażeniu regularnym {0,1}. To prawda, jakieś wyrażenie regularne? silniki nie obsługują znaku zapytania, ale są do niczego ;-) W każdym razie Perl tak, i jest to najbliższe „standardowi” składni wyrażeń regularnych.
David Z

6
+1 to absolutny geniusz!
Matthew J Morrison

6
To nie jest odpowiedź na zadane pytanie.
Azat

64

Googlefight mówi, że wygrywa regex , od 685000 do 289000 (czyli około 2,37: 1).

Poza tym regexp jest dziwne, gdy wypowiada się na głos, ponieważ jest tak mało (jeśli w ogóle?) Słów, które kończą się dźwiękiem „-ksp”, ale jest wiele słów, które kończą się dźwiękiem „-ecks”.


7
W World of Warcraft ludzie wychodzą, aby zdobyć „exp” (skrót od „punktów doświadczenia”). Więc powiedzenie „exp” nie jest ani trudne, ani dziwne. Wszystko jest po prostu kwestią tego, jak przyzwyczajeni jest mówca do tego słowa.
Shi

1
Wymówiłbym „exp” jako „ex-pee” - nie gram WoW ...
Adrian Lynch

1
Podoba mi się odpowiedź, ale wolę wymowę wyrażenia regularnego . Brakuje podania prostego wyrażenia regularnego , ponieważ nie uwzględnia on wszystkich spółgłosek na początku. Zwykle powinny to robić skróty, np. stały powinien być const , nie con .
Adam Hunyadi

Gracze @Shi Warcraft prawie zawsze czytają lub piszą „exp”.
Navid Vafaei

24

Obie są w porządku. „wyrażenie regularne” jest bardziej powszechne, ale „wyrażenie regularne” jest używane częściej niż wskazują na to inne odpowiedzi. Kilka przykładów:


2
Man regexp na moim Macu wyświetla stronę podręcznika Tcl. Hmmm ... może to nie jest aprobata.
dmckee --- kociak byłego moderatora

17

regexjest krótszy; dlatego lepiej :) Poza tym łatwiej jest wymówić.


10

Akceptowanym skrótem jest „regex”.

Z mojego doświadczenia wynika, że ​​wyrażenie „Regexp” jest używane tylko w kontekście JavaScript, w którym faktycznie wywoływany jest obiekt reprezentujący wyrażenie regularne RegExp.


3
iw emacs. Funkcja znajdowania wyrażenia regularnego to isearch-forward-regexpitd.
Adam Rosenfield,

2
Ogólnie ECMAScript - nawet w ActionScript to nazywaRegExp
Amarghosh


1
Cóż, w oryginalnej notatce QED, w której Dennis Ritchie i Ken Thompson wprowadzili zupełnie nową funkcję wyrażeń regularnych (w kontekście edycji tekstu), napisali: „W dalszej dyskusji” <regexp> ”będzie oznaczać wyrażenie regularne ”.
Sz.

6

Myślę, że „regex” jest bardziej powszechne (np. Pakiet Java java.util.regex). Jeśli 10000 fanów Elvisa nie może się mylić, głosowałbym na to na podstawie liczb.


2
A w .NET jestSystem.Text.RegularExpressions.Regex
Anthony Pegram


5

„regex” jest bardziej powszechne i jest używane w FAQ Perla. Google podaje 4,5 miliona trafień dla „wyrażenia regularnego” i 3,6 miliona dla „wyrażenia regularnego”. Wikipedia używa obu.

Co wolisz? Nie sądzę, żeby ktoś źle o tobie pomyślał, jeśli będziesz ich używać zamiennie.


4
Co ciekawe, „perldoc perlre” (który opisuje wyrażenia regularne w perlu), mówi „regex” wszędzie, ale odnosi się do „Regexp Quote-Like Operators” w perlop. „perldoc perlop” jest trochę zdezorientowany i mówi jedno i drugie, chociaż przeważnie „regex”. "perl -le 'print ref (qr / x /)'" wypisuje "Regexp". Więc Perl jest zdezorientowany, powiedziałbym.
Peter V. Mørch

4

Powiedziałbym, że to „regex”, jest to oparte na moim własnym doświadczeniu, sposobie, w jaki to słyszałem i dyskusji społeczności tutaj.

Nie mogę go w tej chwili znaleźć, ale ta dyskusja dotyczyła meta nad tagami w SO, dlatego jest to jedyne pytanie oznaczone jako „regexp” , a pozostałe (8441 i liczące) są oznaczone jako „regex” .


Na marginesie: czy ma znaczenie, które słowo jest „poprawne”? Pomyśl o celu tutaj, dlaczego używasz jakiegoś słowa? Komunikować się. Do pewnego stopnia nie ma znaczenia, co jest poprawne, czy nie, ważne jest, z którym z nich możesz skutecznie komunikować się większej liczbie osób . Powiedziałbym, że możesz łatwo argumentować, używając niewłaściwego terminu, jeśli tego używa większość twoich odbiorców, ponieważ Twoim celem jest komunikacja.


Powodem, dla którego nie ma pytań oznaczonych jako „regexp” jest to, że niektórzy z nas ciągle usuwają ten tag lub zastępują go słowem „regex” (tak jak właśnie zrobiłem tutaj). Nie potrzebujemy dwóch tagów o tym samym znaczeniu, a wyrażenie „regex” ma przewagę pod względem preferencji użytkowników (choć może to być spowodowane tym, że jest krótsze).
Alan Moore

@Alan - tak, ale czy nie uważasz, że w tym przypadku "regexp" było TAKŻE dobrym wyborem, ponieważ pytanie dotyczy porównania dwóch?
Vilx

1
@ Vlix - równie łatwo można by argumentować, że żaden tag nie jest odpowiedni, ponieważ tak naprawdę pytanie dotyczy terminologii, a nie wyrażeń regularnych . Ale odpowiedzi wydają się wskazywać, że „regex” i tak jest zwycięzcą, więc dlaczego po prostu nie będziemy się tego trzymać?
Alan Moore

2
AKTUALIZACJA: Pytania i odpowiedzi przebiegały przed wdrożeniem funkcji „synonimów tagów” ​​w StackOverflow. Teraz tagi takie jak regexpi regular-expressionsą automatycznie konwertowane na regex.
Alan Moore

4

Myślę, że czas przestać myśleć w kategoriach skrótów lub skrótów. Wyrażenia regularne, których używamy w naszych codziennych zadaniach, są całkowicie odmienne od regularnych wyrażeń w informatyce czy formalnej teorii języka. Dlatego Larry Wall i inni prominentni członkowie społeczności Perla od lat preferują „regex”: nazywanie ich RegExp lub RegEx, a nawet RE, sugeruje związek, który już nie obowiązuje.


3

Słyszałem / czytałem również:

reg-exp

A niektórzy wolą, regexponieważ liczba mnoga regexesjest „ładniejsza”! (oprócz powodów wyjaśnionych w innych odpowiedziach).

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp


1
Lub n.pl. Regexen.
Walf

2

Oba są dobre w dyskursie pisemnym, chociaż prawdopodobnie nie chcesz zbyt często mówić „regexp”;)

Do użycia w kodzie, myślę, że regexp jest prawdopodobnie bardziej przejrzysty. Zwłaszcza jeśli używasz wielkich liter, takich jak RegEx / RegExp. Sufiks Ex jest często używany do wskazania rozszerzonej wersji prostszej funkcji ... np. CreateWindow / CreateWindowEx w Windows API, więc RegExp może być trochę mniej niejednoznaczne, jeśli chodzi o czytelność kodu.


-1

Wolę „re”, ale to zależy od języka. JavaScript wymienia to jako „RegExp”, podczas gdy większość innych języków nazywa to po prostu „RegEx”.

Podczas wyszukiwania w Google wybierz krótszą wersję. Ale na forach użyj "re";)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.