Manakah singkatan yang benar - “regex” atau “regexp” [ditutup]

119

Sebagian besar dari kita, programmer komputer, sangat terobsesi dengan terminologi yang benar. Ya, terutama karena terkadang mengubah hanya satu karakter dalam satu kata dapat mengubah artinya secara drastis.

Jadi ... apa singkatan yang benar untuk "ekspresi reguler"? Apakah itu "regex" atau "regexp"? Di internet saya melihat keduanya menggunakan, meskipun "regex" tampaknya lebih populer, dan daftar tag di SO juga hanya menyertakan "regex". Tetapi banyak orang juga menggunakan "regexp" dalam pertanyaan mereka.

Vilx-
sumber
5
Saya percaya bahwa yang paling mudah diucapkan menang - "regex" mengalahkan "regexp" di sana sejauh satu mil. Ini terjadi sepanjang waktu dalam bahasa manusia. Itu baru opini saya.
Hamish Grubijan
9
Sejujurnya saya belum pernah melihatnya disebut sebagai regexp. Tidak sekali seumur hidupku sebelum saat ini.
Anthony Pegram
4
Secara historis, Anda tentu saja benar. Kata "regex" adalah kependekan dari kata "regular expression". Tetapi hal - hal yang kami sebut ekspresi reguler sama sekali berbeda dari hal-hal yang kami sebut ekspresi reguler. Misalnya: ekspresi reguler dirancang untuk menjadi sangat sederhana dan elegan. Saya dapat menuliskan sintaks lengkap dan semantik ekspresi reguler dalam 4 baris masing-masing. Faktanya, saya bahkan tidak membutuhkan garis penuh, masing-masing hanya 4 poin peluru sudah cukup. Sebaliknya, sintaks untuk literal regexp dalam spesifikasi ECMAScript5 menempati seluruh halaman ...
Jörg W Mittag
2
Ini mengingatkan saya pada pertanyaan 'penting' lainnya: "Apakah diucapkan 'car' atau 'char'?"
Ash
2
Pertanyaan ini tampaknya di luar topik karena ini tentang terminologi dan bukan pemrograman.
Toto

Jawaban:

563
/regexp?/    

Matt Stephenson
sumber
107
jawaban ini penuh dengan win
meder omuraliev
12
+1 - Saya melihat apa yang Anda lakukan di sana
Nick Craver
5
@Igor: tepatnya itulah yang ?dimaksud dalam ekspresi reguler {0,1},. Benar, beberapa regexp? mesin tidak mendukung tanda tanya tetapi mereka payah ;-) Pokoknya Perl mendukung, dan itu adalah hal yang paling mendekati "standar" untuk sintaks ekspresi reguler.
David Z
6
1 itu jenius mutlak!
Matthew J Morrison
6
Ini bukanlah jawaban atas pertanyaan yang diajukan.
Azat
64

Googlefight mengatakan kemenangan regex , 685000 hingga 289000 (yaitu sekitar 2.37: 1).

Selain itu, regexp aneh untuk diucapkan dengan lantang karena sangat sedikit (jika ada?) Kata yang diakhiri dengan bunyi "-ksp", tetapi ada banyak kata yang diakhiri dengan bunyi "-eck".

Mark Rushakoff
sumber
7
Di World of Warcraft, orang keluar untuk mendapatkan beberapa "exp" (kependekan dari "poin pengalaman"). Jadi mengatakan "exp" tidaklah sulit dan juga tidak terdengar aneh. Ini semua hanyalah masalah seberapa digunakan pembicara untuk kata itu.
Shi
1
Saya akan mengucapkan "exp" sebagai "ex-pee" - Saya tidak bermain WoW ...
Adrian Lynch
1
Saya suka jawabannya, tapi saya lebih suka pengucapan regexp . Tidak cukup hanya mengatakan regex , karena tidak memperhitungkan semua konsonan di awal. Biasanya singkatan harus melakukannya, misalnya. konstanta harus berupa konstanta , bukan con .
Adam Hunyadi
Pemain @Shi Warcraft hampir selalu membaca atau menulis "exp".
Navid Vafaei
24

Keduanya baik-baik saja. "regex" lebih umum, tetapi "regexp" telah digunakan lebih luas daripada yang ditunjukkan oleh jawaban lain di sini. Beberapa contoh:

pengguna85509
sumber
2
Man regexp di mac saya memunculkan halaman manual Tcl. Hmmm ... mungkin itu bukan pengesahan.
dmckee --- mantan moderator anak kucing
17

regexlebih pendek; oleh karena itu, lebih baik :) Juga, lebih mudah diucapkan.

houbysoft
sumber
10

Singkatan yang diterima adalah "regex".

"Regexp" hanya digunakan, menurut pengalaman saya, dalam konteks Javascript di mana objek yang mewakili ekspresi reguler sebenarnya dipanggil RegExp.

cletus
sumber
3
dan di emacs. Fungsi untuk mencari ekspresi reguler adalah isearch-forward-regexp, dll.
Adam Rosenfield
2
ECMAScript secara umum - bahkan ActionScript menyebutnyaRegExp
Amarghosh
1
Nah, dalam memo asli QED, di mana Dennis Ritchie dan Ken Thompson memperkenalkan fitur baru ekspresi reguler (dalam konteks pengeditan teks), mereka menulis: "Dalam diskusi berikutnya," <regexi> "akan menunjukkan ekspresi reguler . "
Sz.
6

Saya pikir "regex" lebih umum (misalnya, paket Java java.util.regex). Jika 10.000 penggemar Elvis tidak mungkin salah, maka saya akan memilih itu berdasarkan kekuatan angka.

duffymo
sumber
2
Dan di. NET ituSystem.Text.RegularExpressions.Regex
Anthony Pegram
6

Menurut Wikipedia

Dalam komputasi, ekspresi reguler, juga disebut sebagai regex atau regexp, ...

Romain Hippeau
sumber
10
Siapa yang memberikan suara untuk kutipan dari Wikipedia?!?
Adam Harte
7
@Adam Harte: Siapa sih yang memberikan suara untuk pertanyaan retoris?
Andrew Grimm
@Andrew haha, sebenarnya ini adalah "pertanyaan pernyataan pertanyaan"
Adam Harte
5

"regex" lebih umum dan digunakan di FAQ Perl. Google memberikan 4,5 juta klik untuk "regex" dan 3,6 juta untuk "regexp." Wikipedia menggunakan keduanya.

Apa yang Anda sukai? Saya tidak berpikir ada orang yang akan menganggap Anda buruk jika Anda menggunakannya secara bergantian.

dawg
sumber
4
Cukup menarik "perldoc perlre" (yang menjelaskan ekspresi reguler dalam perl), mengatakan "regex" di mana-mana tetapi merujuk "Regexp Quote-Like Operator" di perlop. "perldoc perlop" agak membingungkan dan mengatakan keduanya, meskipun kebanyakan "regex". "perl -le 'print ref (qr / x /)'" mencetak "Regexp". Jadi perl bingung, menurut saya.
Peter V. Mørch
4

Saya akan mengatakan itu "regex", ini berdasarkan pengalaman saya sendiri, bagaimana saya mendengarnya, dan diskusi komunitas di sini.

Saya tidak dapat menemukannya saat ini, tetapi diskusi ini berada di meta over tag di SO, itulah mengapa ini adalah satu - satunya pertanyaan yang diberi tag "regexp" , sisanya (8441 dan terus bertambah) diberi tag "regex" .


Hanya sebuah pemikiran sampingan di sini: apakah penting mana yang "benar?" Pikirkan tentang tujuannya di sini, mengapa Anda menggunakan kata apa pun? Untuk berkomunikasi. Pada tingkat tertentu, tidak peduli mana yang benar atau tidak, yang penting Anda dapat berkomunikasi secara efektif dengan lebih banyak orang menjadi penting . Menurut saya, Anda dapat dengan mudah membantah untuk menggunakan istilah yang salah, jika itu yang digunakan mayoritas audiens Anda, karena komunikasi adalah tujuan Anda.

Nick Craver
sumber
Alasan tidak ada pertanyaan yang diberi tag "regexp" adalah karena sebagian dari kita terus menghapus tag tersebut atau menggantinya dengan "regex" (seperti yang baru saja saya lakukan di sini). Kami tidak memerlukan dua tag dengan arti yang sama, dan "regex" memiliki keunggulan dalam hal preferensi pengguna (meskipun itu mungkin hanya karena lebih pendek).
Alan Moore
@Alan - ya, tetapi bukankah menurut Anda dalam kasus ini "regexp" JUGA merupakan pilihan yang baik, karena pertanyaannya adalah tentang membandingkan keduanya?
Vilx-
1
@ Vlix- Anda dapat dengan mudah membantah bahwa tidak ada tag yang sesuai, karena pertanyaannya sebenarnya tentang terminologi, bukan ekspresi reguler . Tetapi tanggapannya tampaknya menunjukkan bahwa "regex" adalah pemenangnya, jadi mengapa kita tidak tetap berpegang pada itu?
Alan Moore
2
PEMBARUAN: Tanya Jawab ini berjalan sebelum fitur "tag sinonim" diterapkan di sini di StackOverflow. Sekarang tag suka regexpdan regular-expressionsecara otomatis diubah menjadi regex.
Alan Moore
4

Saya pikir sudah waktunya untuk berhenti berpikir dalam istilah singkatan atau singkatan. Ekspresi reguler yang kita gunakan dalam tugas sehari-hari berbeda sama sekali dari ekspresi reguler ilmu komputer atau teori bahasa formal. Inilah mengapa Larry Wall dan anggota komunitas Perl yang terkemuka lebih memilih "regex" selama bertahun-tahun: memanggil mereka RegExp atau RegEx, atau bahkan RE, menunjukkan hubungan yang tidak lagi berlaku.

Alan Moore
sumber
3

Saya juga mendengar / membaca:

reg-exp

Dan beberapa orang lebih suka regexkarena bentuk jamaknya regexes"lebih bagus"! (selain alasan yang dijelaskan oleh jawaban lain).

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp

polkduran
sumber
1
Atau n.pl. Regexen.
Walf
2

Keduanya baik-baik saja untuk wacana tertulis, meskipun Anda mungkin tidak ingin mengucapkan "regexp" terlalu sering;)

Untuk digunakan dalam kode, menurut saya regexp mungkin lebih jelas. Apalagi jika Anda menggunakan kapitalisasi seperti RegEx / RegExp. Akhiran Ex sering digunakan untuk menunjukkan versi tambahan dari fungsi yang lebih sederhana ... yaitu CreateWindow / CreateWindowEx di Windows API, jadi RegExp mungkin sedikit kurang ambigu sejauh pembacaan kode berjalan.

Gerald
sumber
-1

Saya lebih suka "kembali", tetapi itu tergantung pada bahasanya. JavaScript mencantumkannya sebagai "RegExp", sedangkan sebagian besar bahasa lain hanya menyebutnya "RegEx".

Saat googling, gunakan versi yang lebih pendek. Namun di forum, gunakan "re";)

vol7ron
sumber