ซึ่งเป็นชวเลขที่ถูกต้อง -“ regex” หรือ“ regexp” [closed]


119

โปรแกรมเมอร์คอมพิวเตอร์ส่วนใหญ่มักจะหมกมุ่นอยู่กับคำศัพท์ที่ถูกต้อง ฉันเป็นอย่างนั้นโดยเฉพาะอย่างยิ่งเพราะบางครั้งการเปลี่ยนตัวอักษรเพียงตัวเดียวในคำสามารถเปลี่ยนความหมายได้อย่างมาก

แล้ว ... ชวเลขที่ถูกต้องสำหรับ "นิพจน์ทั่วไป" คืออะไร? มันเป็น "regex" หรือ "regexp"? บนอินเทอร์เน็ตฉันเห็นการใช้ทั้งสองอย่างแม้ว่า "regex" จะได้รับความนิยมมากกว่าและรายการแท็กที่นี่ใน SO ก็มีเพียง "regex" แต่ผู้คนจำนวนมากยังใช้ "regexp" ในคำถามของพวกเขา


5
ฉันเชื่อว่าสิ่งที่ง่ายที่สุดในการออกเสียงชนะ - "regex" เต้น "regexp" ที่นั่นหนึ่งไมล์ สิ่งนี้เกิดขึ้นตลอดเวลาในภาษามนุษย์ นั่นเป็นเพียงความคิดเห็นของฉัน
Hamish Grubijan

9
ฉันไม่เคยเห็นมันเรียกว่า regexp ไม่ใช่ครั้งเดียวในชีวิตก่อนหน้านี้
Anthony Pegram

4
ในอดีตคุณถูกต้องแน่นอน คำว่า "นิพจน์ทั่วไป" เป็นคำย่อของคำว่า "นิพจน์ทั่วไป" แต่สิ่งที่เราเรียกว่านิพจน์ทั่วไปนั้นแตกต่างอย่างสิ้นเชิงกับสิ่งที่เราเรียกว่านิพจน์ทั่วไป ตัวอย่างเช่นนิพจน์ทั่วไปได้รับการออกแบบให้เรียบง่ายและสวยงามมาก ฉันสามารถเขียนไวยากรณ์และความหมายแบบเต็มของนิพจน์ทั่วไปได้ 4 บรรทัด อันที่จริงฉันไม่จำเป็นต้องใช้เต็มบรรทัดด้วยซ้ำแค่ 4 สัญลักษณ์แสดงหัวข้อย่อยก็เพียงพอแล้ว ในทางตรงกันข้ามไวยากรณ์สำหรับตัวอักษร regexp ในข้อกำหนด ECMAScript5 จะใช้ทั้งหน้า ...
Jörg W Mittag

2
สิ่งนี้ทำให้ฉันนึกถึงคำถาม 'สำคัญ' อีกคำถามหนึ่ง: "ออกเสียงว่า" รถ "หรือ" ถ่าน "?
เถ้า

2
คำถามนี้ดูเหมือนจะไม่ตรงประเด็นเนื่องจากเป็นเรื่องเกี่ยวกับคำศัพท์ไม่ใช่การเขียนโปรแกรม
Toto

คำตอบ:


563
/regexp?/    


107
คำตอบนี้เต็มไปด้วย win
meder omuraliev

12
+1 - ฉันเห็นสิ่งที่คุณทำที่นั่น
Nick Craver

5
@Igor: ว่าสิ่งที่แม่นยำวิธีการในการแสดงออกปกติ? {0,1}จริง regexp บ้าง? เอ็นจิ้นไม่รองรับเครื่องหมายคำถาม แต่มันห่วย ;-) อย่างไรก็ตาม Perl ก็ทำและมันเป็นสิ่งที่ใกล้เคียงที่สุดกับ "มาตรฐาน" สำหรับไวยากรณ์ของนิพจน์ทั่วไป
David Z

6
+1 ที่อัจฉริยะแน่นอน!
Matthew J Morrison

6
นี่ไม่ใช่คำตอบสำหรับคำถามที่ถาม
Azat

64

Googlefightกล่าวว่าregexชนะ 685000 ถึง 289000 (ซึ่งประมาณ 2.37: 1)

นอกจากนี้regexpยังแปลกที่จะพูดออกมาดัง ๆ เพราะมีคำน้อยมาก (ถ้ามี?) ที่ลงท้ายด้วยเสียง "-ksp" แต่มีหลายคำที่ลงท้ายด้วยเสียง "-ecks"


7
ใน World of Warcraft ผู้คนออกไปข้างนอกเพื่อรับ "ประสบการณ์" (ย่อมาจาก "คะแนนประสบการณ์") ดังนั้นการพูดว่า "exp" จึงไม่ยากหรือฟังดูแปลก ๆ ทั้งหมดเป็นเพียงเรื่องของการใช้ลำโพงกับคำนั้น
ชิ

1
ฉันจะออกเสียง "exp" เป็น "ex-pee" - ฉันไม่เล่น WoW ...
Adrian Lynch

1
ผมชอบคำตอบ แต่ฉันชอบการออกเสียงของregexp พูดง่ายๆregexขาดเพราะมันไม่ได้คำนึงถึงพยัญชนะทั้งหมดในตอนต้น โดยปกติแล้วตัวย่อควรทำเช่นนั้น คงที่ควรจะconstไม่ต่อต้าน
Adam Hunyadi

ผู้เล่น @Shi Warcraft มักจะอ่านหรือเขียน "exp"
Navid Vafaei

24

ทั้งคู่ก็โอเค "regex" เป็นเรื่องธรรมดา แต่มีการใช้ "regexp" กันอย่างแพร่หลายมากกว่าคำตอบอื่น ๆ ที่ระบุไว้ในที่นี้ ตัวอย่างบางส่วน:


2
Man regexp บน Mac ของฉันเปิดหน้า Man Tcl อืม ... บางทีนั่นอาจไม่ใช่การรับรอง
dmckee --- อดีตผู้ดูแลลูกแมว

17

regexสั้นกว่า ดังนั้นดีกว่า :) นอกจากนี้ยังง่ายต่อการออกเสียง


10

ชวเลขที่ยอมรับคือ "regex"

จากประสบการณ์ของฉันใช้ "Regexp" ในบริบทของ Javascript ที่มีการเรียกวัตถุที่เป็นตัวแทนของนิพจน์ทั่วไปRegExpเท่านั้น


3
และใน emacs ฟังก์ชันในการค้นหานิพจน์ทั่วไปคือisearch-forward-regexpฯลฯ
Adam Rosenfield

2
ECMAScript โดยทั่วไป - แม้แต่ ActionScript เรียกมันว่าRegExp
Amarghosh


1
ในบันทึกเดิมของ QED ที่ Dennis Ritchie และ Ken Thompson ได้แนะนำคุณลักษณะใหม่ล่าสุดของนิพจน์ทั่วไป (ในบริบทของการแก้ไขข้อความ) พวกเขาเขียนว่า: "ในการสนทนาครั้งต่อไป" <regex โอกาส "จะแสดงถึงนิพจน์ทั่วไป ."
Sz.

6

ฉันคิดว่า "regex" เป็นเรื่องธรรมดามากกว่า (เช่นแพ็คเกจ Java java.util.regex) ถ้าแฟน ๆ เอลวิส 10,000 คนไม่สามารถผิดได้ฉันจะโหวตให้ด้วยความแข็งแกร่งของตัวเลข


2
และใน. NET ก็คือSystem.Text.RegularExpressions.Regex
Anthony Pegram

6

อ้างอิงจากWikipedia

ในการคำนวณนิพจน์ทั่วไปเรียกอีกอย่างว่า regex หรือ regexp ...


10
ใครกันที่โหวตคำพูดจาก Wikipedia!?
Adam Harte

7
@Adam Harte: ใครโหวตคำถามเกี่ยวกับวาทศิลป์?
Andrew Grimm

@ แอนดรูฮ่าฮ่าจริงๆแล้วมันคือ "คำถามคำตอบ"
Adam Harte

5

"regex" เป็นเรื่องปกติมากขึ้นและสิ่งที่ใช้ใน Perl FAQ Google ให้ 4.5 ล้าน Hit สำหรับ "regex" และ 3.6 ล้านครั้งสำหรับ "regexp" Wikipedia ใช้ทั้งสองอย่าง

คุณชอบอะไร ฉันไม่คิดว่าใครจะคิดร้ายกับคุณถ้าคุณใช้มันแทนกันได้


4
"perldoc perlre" ที่น่าสนใจพอสมควร (ซึ่งอธิบายนิพจน์ทั่วไปใน perl) พูดว่า "regex" ทุกที่ แต่อ้างถึง "Regexp Quote-Like Operators" ใน perlop "perldoc perlop" สับสนเล็กน้อย ans กล่าวว่าทั้งสองอย่างแม้ว่าส่วนใหญ่จะเป็น "regex" ก็ตาม "perl -le" print ref (qr / x /) "" พิมพ์ "Regexp" ดังนั้น Perl สับสนฉันจะพูด
Peter V.Mørch

4

ฉันจะบอกว่ามันเป็น "regex" ซึ่งขึ้นอยู่กับประสบการณ์ของฉันเองฉันได้ยินมาได้อย่างไรและการสนทนาของชุมชนที่นี่

ฉันไม่สามารถหาได้ในขณะนี้ แต่การสนทนานี้อยู่ในเมตามากกว่าแท็กบน SO ซึ่งเป็นเหตุผลนี้เป็นคำถามเดียวที่ติดแท็ก "regexp"ส่วนที่เหลือ (8441 และนับ) ที่ติดแท็ก"regex"


ความคิดด้านนี้: มันสำคัญหรือไม่ที่ "ถูกต้อง" ลองนึกถึงจุดประสงค์ที่นี่ทำไมคุณถึงใช้คำใด ๆ เพื่อสื่อสาร. ในระดับหนึ่งก็ไม่ได้สำคัญว่าสิ่งที่ถูกต้องหรือไม่มันเป็นเรื่องสำคัญที่หนึ่งที่คุณมีประสิทธิภาพสามารถติดต่อสื่อสารกับผู้คนมากขึ้น ฉันจะบอกว่าคุณสามารถโต้แย้งได้อย่างง่ายดายโดยใช้คำที่ไม่ถูกต้องหากนั่นคือสิ่งที่ผู้ชมส่วนใหญ่ของคุณใช้เนื่องจากการสื่อสารคือเป้าหมายของคุณ


เหตุผลที่ไม่มีคำถามที่ติดแท็ก "regexp" เป็นเพราะพวกเราบางคนลบแท็กนั้นออกไปเรื่อย ๆ หรือแทนที่ด้วย "regex" (เหมือนที่เคยทำที่นี่) เราไม่ต้องการแท็กสองแท็กที่มีความหมายเหมือนกันและ "regex" มีความได้เปรียบในแง่ของการตั้งค่าของผู้ใช้ (แม้ว่าอาจเป็นเพียงเพราะมันสั้นกว่าก็ตาม)
Alan Moore

@Alan - ใช่ แต่คุณไม่คิดว่าในกรณีนี้ "regexp" ยังเป็นตัวเลือกที่ดีเพราะคำถามเกี่ยวกับการเปรียบเทียบทั้งสอง
Vilx-

1
@ Vlix- คุณสามารถโต้แย้งได้อย่างง่ายดายว่าแท็กใดไม่เหมาะสมเนื่องจากคำถามเกี่ยวกับคำศัพท์ไม่ใช่ regexes แต่การตอบกลับดูเหมือนจะแสดงให้เห็นว่า "regex" เป็นผู้ชนะแล้วทำไมเราไม่ยึดติดกับสิ่งนั้นล่ะ
Alan Moore

2
อัปเดต: Q / A นี้ดำเนินการตามหลักสูตรก่อนที่จะใช้คุณลักษณะ "คำพ้องความหมายของแท็ก" ที่ StackOverflow ตอนนี้แท็กเหมือนregexpและregular-expressionจะถูกแปลงเป็นregexไฟล์.
Alan Moore

4

ฉันคิดว่าถึงเวลาแล้วที่จะเลิกคิดในแง่ของ shorthands หรือตัวย่อ นิพจน์ทั่วไปที่เราใช้ในงานประจำวันเป็นสายพันธุ์ที่แตกต่างไปจากนิพจน์ทั่วไปของวิทยาการคอมพิวเตอร์หรือทฤษฎีภาษาที่เป็นทางการ นี่คือสาเหตุที่ Larry Wall และสมาชิกที่มีชื่อเสียงคนอื่น ๆ ของชุมชน Perl ต้องการ "regex" มาหลายปีแล้ว: การเรียกพวกเขาว่า RegExp หรือ RegEx หรือแม้แต่ RE แนะนำความสัมพันธ์ที่ไม่มีผลอีกต่อไป


3

ฉันยังเคยได้ยิน / อ่าน:

reg-exp

และบางคนชอบregexเพราะพหูพจน์regexes"ดีกว่า"! (นอกเหนือจากเหตุผลที่อธิบายโดยคำตอบอื่น ๆ )

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp


1
หรือ n.pl. Regexen
Walf

2

ทั้งสองอย่างเหมาะสำหรับการเขียนวาทกรรมแม้ว่าคุณอาจไม่ต้องการพูด "regexp" บ่อยเกินไป;)

สำหรับการใช้งานในโค้ดฉันคิดว่า regexp น่าจะชัดเจนกว่า โดยเฉพาะอย่างยิ่งถ้าคุณใช้ตัวพิมพ์ใหญ่เช่น RegEx / RegExp คำต่อท้าย Ex มักใช้เพื่อระบุเวอร์ชันเพิ่มเติมของฟังก์ชันที่ง่ายกว่า ... เช่น CreateWindow / CreateWindowEx ใน Windows API ดังนั้น RegExp อาจมีความคลุมเครือน้อยกว่าเล็กน้อยเท่าที่ความสามารถในการอ่านโค้ดไปได้


-1

ฉันชอบ "re" แต่ขึ้นอยู่กับภาษา JavaScript แสดงรายการเป็น "RegExp" ในขณะที่ภาษาอื่น ๆ ส่วนใหญ่เรียกว่า "RegEx"

เมื่อใช้ googling ให้ใช้เวอร์ชันที่สั้นกว่า แต่ในฟอรัมใช้ "re";)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.