การย่อมาตรฐานสำหรับ "นิพจน์ทั่วไป", "regex" หรือ "regexp" คืออะไร [ปิด]


11

ฉันต้องการที่จะรู้ว่าอะไรคือวิธีที่เป็นมาตรฐานมากขึ้นในการเรียกการแสดงออกปกติในทางสั้น ๆ ฉันได้เห็นทั้ง regex และ regexp

Google กล่าวว่า regex มีความนิยมมากถึงเกือบ 2 เท่าที่ regexp แต่ขึ้นอยู่กับวิธีที่ฉันค้นหา (เมื่อฉันเพิ่ม "การแสดงออกปกติ" หลังจากคำว่า "regex" กลายเป็น "การแสดงออกปกติ regex" ผลลัพธ์จะแตกต่างกัน) และบน stackexchange จะมีแท็ก regex :)

อะไรคือวิธีที่เหมาะสมกว่าในการย่อให้สั้นลง

บางทีมันไม่สำคัญ :) แต่ขอบคุณสำหรับคำตอบ


วิธีย่อคำว่า "การแสดงผลปกติ" ไม่ใช่คำถามเชิงสร้างสรรค์ที่จะมีคำตอบที่ถูกต้องหรือให้อะไรมากกว่าแบบสำรวจความต้องการของผู้คน

@ Mark - ฉันไม่เห็นว่าทำไมคำถามนี้จึงถูกปิดเนื่องจาก "ไม่เป็นไปตามหลักเกณฑ์" ฉันสามารถติ๊กแนวทางและ IMO มันตรงกับส่วนใหญ่ ตัวอย่างเช่นมันถูกถามด้วยน้ำเสียงที่เป็นกลางมันเชิญชวนให้อภิปรายว่าทำไม (เท่าที่เห็นในคำตอบที่ยอดเยี่ยมบางคำ) จะเชิญการแบ่งปันประสบการณ์และมันไม่ใช่แค่
Jay Elston

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

Regexp ค่อนข้างเก่า IMHO
Mateen Ulhaq

คำตอบ:


13

ไม่มีตัวย่อที่ถูกหรือผิดที่นี่ ส่วนใหญ่จะได้รับอิทธิพลจาก API ที่คุณใช้งาน:

มันคือ Regex!

มัน Regexp!

มันเป็นอย่างอื่นโดยสิ้นเชิง!

ความจริงที่ว่า Jeffrey Friedl ผู้เขียนนิพจน์ทั่วไป Mastering ที่ยอดเยี่ยมอาศัยอยู่ที่regex.infoนั้นดีพอสำหรับฉัน: ฉันมักจะเรียกพวกเขาว่า regexes แต่ฉันเก็บไว้ใกล้มือในกรณีที่ฉันเปลี่ยนใจในภายหลัง ...

s/\bregex\b/$&p/gi;

มันคือ Rexexp ใน perl พิสูจน์: perl -le 'print ref(qr/re/)'ดำเนินการนี้หนึ่งซับ: หรืออาจเป็น regex? "regex" ชนะออกไป "regexp" man perlreโดยขอบกว้างใน
David Hammen

มันคือregex , FTW!
Mateen Ulhaq

นี่เป็นนิด ๆ หน่อย ๆ แต่การแสดงออกปกติจะไม่เรียกว่า "preg" ใน PHP preg เป็นคำนำหน้าสำหรับฟังก์ชั่น regex หนึ่งชุดที่ใช้เอนจิน PCRE
MattBelanger

@ MattBelanger และพวกเขาไม่ได้ "เรียกว่า" //ใน Perl อย่างใดอย่างหนึ่ง :) มันเป็นประเด็นทั่วไปเกี่ยวกับตัวย่อต่าง ๆ หรืออนุสัญญาอื่น ๆ ที่ใช้ระหว่างภาษา
Mark Whitaker

1
@ Mark Whitaker ผมตำหนิการโพสต์ที่ 6:30 ก่อนที่ผมจะได้มีกาแฟของฉัน :)
MattBelanger

11

บ่งชี้บางอย่าง - มีRegexคลาสใน. NET และregexแพ็คเกจใน Java; Regexpไม่ สอง 'ระบบนิเวศ' ที่ค่อนข้างใหญ่ โดยตัวผมเองมันมีความหมายมากกว่าสำหรับผมมากกว่าราวกับว่ามีคณะกรรมการบางแห่งตัดสินใจด้วยวิธีนี้


4
ใน Javascript นั่นคือ RegExp

9

ไม่มีมาตรฐานที่กำหนดสิ่งนี้ สำหรับสิ่งที่พบได้ทั่วไป Google กล่าวว่าregex vs. regexpประมาณ 13.8 vs 9.8 ล้านพบ


6

Regexเป็นเรื่องธรรมดามากขึ้นและคุณอาจจะได้รับอย่างรวดเร็วคี่หรือสองถ้าคุณบอกว่าRegexp


แน่นอนคุณไม่ได้พูดกับนักทับทิม ;)
Brandon Satrom

2

ฉันไม่เคยก่อนหัวข้อนี้เห็นมันลงไปและเห็นมันเป็นเสมอregexp regexเพียงเพื่อเพิ่มรายการใหม่ c ++ มาตรฐานมีไม่<regex><regexp>


1

สิ่งที่เป็นมาตรฐานมากขึ้นขึ้นอยู่กับภาษาที่โดดเด่นของคนที่คุณกำลังพูดถึงฉันจะเถียง แก้ไขข้างต้นเกี่ยวกับRegexใน. NET และ Java แต่ Ruby ใช้Regexpคลาสสำหรับนิพจน์ทั่วไป


1

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

พจนานุกรมของฉันบอกฉันว่าreg เป็นรูปแบบย่อของอย่างสม่ำเสมอและexp เป็นชวเลขของด่วน ดังนั้นถ้าคุณต้องการที่จะปฏิบัติตามกฎของตัวย่อ, REGEXPดูเหมือนโครงสร้างมากขึ้น อย่างไรก็ตามการสร้างคำศัพท์ใหม่ (neologism ตามที่พวกเขาเรียก) ไม่ตรงและมักจะทำโดยคนที่ไม่ใช่นักภาษาศาสตร์ เมื่อพิจารณาถึงปัญหาเหล่านี้เพื่อสร้างชื่อที่มีการออกเสียงที่น่าดึงดูดยิ่งขึ้นคุณสามารถสร้างREGEXได้

เช่นเดียวกับบันทึกย่อตัวแก้ไข StackExchange ถือว่า regex เป็นคาถาที่ผิดในขณะที่ regexp ก็ใช้ได้ดี :)


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