Doğru kısaltma hangisi - "regex" veya "regexp" [kapalı]


119

Çoğumuz bilgisayar programcılarının doğru terminoloji konusunda oldukça takıntılıyız. Kesinlikle öyleyim, çünkü bazen bir kelimedeki tek bir karakteri değiştirmek, anlamını büyük ölçüde değiştirebilir.

Öyleyse ... "düzenli ifade" için doğru kısaltma nedir? "Regex" mi yoksa "regexp" mi? İnternette her iki kullanımı da görüyorum, ancak "regex" daha popüler gibi görünüyor ve SO üzerindeki etiket listesi de sadece "regex" içeriyor. Ancak pek çok insan sorularında "regexp" kullanıyor.


5
Sanırım telaffuzu en kolay olanı kazanır - "regex" orada "regexp" yi bir mil geride bırakır. Bu insan dillerinde her zaman olur. Bu sadece benim fikrim.
Hamish Grubijan

9
Dürüst olmak gerekirse, bundan hiç regexp olarak bahsedildiğini görmedim. Bu andan önceki tüm hayatımda bir kez bile değil.
Anthony Pegram

4
Tarihsel olarak, elbette haklısınız. "Regex" kelimesi, "normal ifade" kelimelerinin kısaltılmış halidir. Ancak normal ifadeler dediğimiz şeyler , regex dediğimiz şeylerden tamamen farklıdır. Örneğin: normal ifadeler son derece basit ve zarif olacak şekilde tasarlanmıştır. Normal ifadelerin tüm sözdizimini ve anlamını her biri 4 satır olarak yazabilirim. Aslında tam satırlara bile ihtiyacım yok, her biri sadece 4 madde işareti yeterli. Buna karşılık, ECMAScript5 belirtimindeki regexp değişmezleri için sözdizimi tüm sayfayı
kaplar

2
Bu bana başka bir 'önemli' soruyu hatırlatıyor: "'Araba' veya 'karakter' olarak mı telaffuz ediliyor?"
kül

2
Bu soru, programlama değil terminoloji ile ilgili olduğu için konu dışı görünüyor.
Toto

Yanıtlar:


563
/regexp?/    


107
bu cevap galibiyetle dolu
meder omuraliev

12
+1 - Orada ne yaptığını görüyorum
Nick Craver

5
@Igor: ?Düzenli ifadede tam olarak bu anlama gelir {0,1}. Doğru, biraz normal ifade? motorlar soru işaretini desteklemiyor ama ;-) emiyorlar Her neyse, Perl bunu yapıyor ve bu, normal ifade sözdizimi için "standart" a en yakın şey.
David Z

6
+1 bu mutlak dahidir!
Matthew J Morrison

6
Sorulan sorunun cevabı bu değil.
Azat

64

Googlefight , normal ifadenin 685000 - 289000 arası kazandığını söylüyor (yaklaşık 2.37: 1).

Ayrıca, regexp'in (varsa?) Sözleri bir "-ksp" ses bitebilir, ancak bir ses "Ecks" in sonuna o kelimelerin bol olduğu kadar az olduğundan yüksek sesle söylemek garip.


7
World of Warcraft'ta, insanlar biraz "exp" ("deneyim puanlarının" kısaltması) kazanmak için dışarı çıkıyorlar. Yani "exp" demek ne zor ne de kulağa tuhaf geliyor. Tüm mesele, konuşmacının o kelime için ne kadar kullanıldığı ile ilgili.
Shi

1
"Exp" ı "eski çiş" olarak telaffuz ederdim - WoW oynamıyorum ...
Adrian Lynch

1
Cevabı beğendim, ancak regexp'in telaffuz edilmesini tercih ederim . Basitçe regex demek eksiktir çünkü başlangıçtaki tüm ünsüzleri hesaba katmaz. Genellikle kısaltmalar bunu yapmalıdır, örn. sabit olmalıdır const değil aleyhte .
Adam Hunyadi

@Shi Warcraft oyuncuları neredeyse her zaman "exp" okur veya yazar.
Navid Vafaei

24

İkisi de iyi. "regex" daha yaygındır, ancak "regexp" buradaki diğer yanıtların gösterdiğinden daha yaygın olarak kullanılmıştır. Bazı örnekler:


2
Mac'imdeki man regexp bir Tcl man sayfası açılıyor. Hmmm ... belki bu bir onay değildir.
dmckee --- eski moderatör yavru kedi

17

regexdaha kısadır; bu nedenle, daha iyi :) Ayrıca telaffuz etmek daha kolay.


10

Kabul edilen kısaltma "regex" tir.

"Regexp", deneyimlerime göre, yalnızca normal ifadeyi temsil eden nesnenin gerçekten çağrıldığı Javascript bağlamında kullanılır RegExp.


3
ve emacs içinde. Normal ifade bulma işlevi isearch-forward-regexp, vb.
Adam Rosenfield

2
Genel olarak ECMAScript - hatta ActionScript diyorRegExp
Amarghosh


1
Eh, içinde orijinal not Dennis Ritchie ve Ken Thompson (metin düzenleme bağlamında) düzenli ifadeler yepyeni özelliğini tanıttı QED ait, yazdıkları: "sonradan tartışmada, '<regexp'in>' normal bir ifade göstereceğiz ."
Sz.

6

Bence "regex" daha yaygın (örneğin, Java paketi java.util.regex). 10.000 Elvis hayranı yanılıyor olamazsa, o zaman buna sayıların gücüne oy veririm.


2
Ve .NET'te buSystem.Text.RegularExpressions.Regex
Anthony Pegram


5

"regex" daha yaygındır ve Perl SSS'de ne kullanılır. Google, "regex" için 4,5 milyon ve "regexp" için 3,6 milyon isabet verir. Wikipedia ikisini de kullanıyor.

Ne tercih edersin? Bunları birbirinin yerine kullanırsanız kimsenin sizi kötü düşüneceğini sanmıyorum.


4
Yeterince ilginç olan "perldoc perlre" (perl'deki düzenli ifadeleri tanımlayan), her yerde "regex" diyor, ancak perlop'ta "Regexp Alıntı Benzeri Operatörlere" atıfta bulunuyor. "perldoc perlop" biraz karışık ve her ikisini de söylüyor, ancak çoğunlukla "regex". "perl -le 'baskı ref (qr / x /)" "" Regexp "yazdırır. Yani Perl'in kafası karışmış, derim.
Peter V.Mørch

4

Bunun "regex" olduğunu söyleyebilirim, bu kendi deneyimlerime, bunu nasıl duyduğuma ve buradaki topluluk tartışmasına dayanmaktadır.

Şu anda bulamıyorum, ancak bu tartışma SO'daki etiketlerin üzerinde meta üzerineydi, bu yüzden "regexp" etiketli tek soru bu, geri kalanlar (8441 ve sayma) "regex" olarak etiketlendi .


Burada sadece bir yan düşünülmüş: Hangisinin "doğru" olduğu önemli mi? Buradaki amacı bir düşünün, neden herhangi bir kelime kullanıyorsunuz? İletişim kurmak. Belli bir dereceye kadar, neyin doğru olup olmadığı önemli değil, hangisini daha fazla insana etkili bir şekilde iletebileceğiniz önemli . Hedef kitlenizin çoğunluğunun kullandığı şey buysa, iletişim amacınız olduğundan, yanlış bir terim kullanmayı kolayca iddia edebileceğinizi söyleyebilirim.


"Regexp" etiketli hiçbir soru olmamasının nedeni, bazılarımızın sürekli olarak bu etiketi kaldırması veya "regex" ile değiştirmesidir (burada az önce yaptığım gibi). Aynı anlama sahip iki etikete ihtiyacımız yoktur ve "regex" kullanıcıların tercihleri ​​açısından üstünlüğe sahiptir (bunun nedeni daha kısa olması olabilir).
Alan Moore

@Alan - evet, ama bu durumda "regexp" nin AYRICA iyi bir seçim olduğunu düşünmüyor musun, çünkü soru ikisini karşılaştırmakla ilgili mi?
Vilx

1
@ Vlix- Soru normal ifadelerle değil terminolojiyle ilgili olduğundan, her iki etiketin de uygun olmadığını kolayca iddia edebilirsiniz . Ancak yanıtlar, "regex" in kazanan olduğunu gösteriyor gibi, öyleyse neden buna sadık kalmıyoruz?
Alan Moore

2
GÜNCELLEME: Bu Soru / Cevap, StackOverflow'da "etiket eşanlamlıları" özelliği burada uygulanmadan önce seyrini yürüttü. Artık etiketler gibi regexpve regular-expressionotomatik olarak biçimine dönüştürülür regex.
Alan Moore

4

Bence kısaltmalar veya kısaltmalarla düşünmeyi bırakmanın zamanı geldi. Günlük görevlerimizde kullandığımız normal ifadeler, bilgisayar bilimi veya resmi dil teorisinin normal ifadelerinden tamamen farklı bir türdür. Bu nedenle Larry Wall ve Perl topluluğunun diğer önde gelen üyeleri yıllardır "regex" i tercih ediyorlar: Bunlara RegExp veya RegEx veya hatta RE olarak adlandırmak, artık geçerli olmayan bir ilişki önerir.


3

Ben de duydum / okudum:

reg-exp

Ve bazı insanlar regexçoğul regexes"daha güzel" olduğu için tercih ediyor ! (diğer cevaplarla açıklanan nedenlere ek olarak).

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp


1
Veya n.pl. Regexen.
Walf

2

Her ikisi de yazılı söylem için uygundur, ancak muhtemelen çok sık yüksek sesle "regexp" demek istemezsiniz;)

Kodda kullanım için regexp'in muhtemelen daha net olduğunu düşünüyorum. Özellikle de RegEx / RegExp gibi büyük harf kullanımı kullanıyorsanız. Bir Ex soneki, genellikle daha basit bir işlevin genişletilmiş bir sürümünü belirtmek için kullanılır ... yani Windows API'de CreateWindow / CreateWindowEx, bu nedenle RegExp, kodun okunabilirliği söz konusu olduğunda biraz daha az belirsiz olabilir.


-1

"Yeniden" yi tercih ederim, ama dile bağlı. JavaScript bunu "RegExp" olarak listeler, oysa diğer dillerin çoğu buna "Normal İfade" adını verir.

Google'da arama yaparken, daha kısa versiyona geçin. Ancak forumlarda "re" kullanın;)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.