Cách viết tắt chính xác - “regex” hoặc “regexp” [đã đóng]


119

Hầu hết chúng ta lập trình viên máy tính đều bị ám ảnh về thuật ngữ chính xác. Tôi chắc chắn là vậy, đặc biệt là vì đôi khi chỉ cần thay đổi một ký tự trong một từ có thể thay đổi đáng kể ý nghĩa của nó.

Vậy ... cách viết tắt chính xác cho "biểu thức chính quy" là gì? Nó là "regex" hay "regexp"? Trên internet, tôi thấy cả hai cách sử dụng, mặc dù "regex" có vẻ phổ biến hơn và danh sách thẻ ở đây trên SO cũng chỉ bao gồm "regex". Nhưng nhiều người cũng sử dụng "regexp" trong các câu hỏi của họ.


5
Tôi tin rằng câu nào dễ phát âm nhất sẽ thắng - "regex" đánh bại "regexp" ở đó một dặm. Điều này xảy ra mọi lúc trong ngôn ngữ của con người. Tôi chỉ có ý kiến ​​thế thôi.
Hamish Grubijan

9
Thành thật mà nói, tôi chưa bao giờ thấy nó được gọi là regexp. Không một lần nào trong đời tôi trước khoảnh khắc này.
Anthony Pegram

4
Về mặt lịch sử, bạn tất nhiên là đúng. Từ "regex" là từ rút gọn của các từ "biểu thức chính quy". Nhưng những thứ mà chúng ta gọi là biểu thức chính quy hoàn toàn khác với những thứ mà chúng ta gọi là regex. Ví dụ: biểu thức chính quy được thiết kế để cực kỳ đơn giản và thanh lịch. Tôi có thể viết ra đầy đủ cú pháp và ngữ nghĩa của các biểu thức chính quy trong mỗi 4 dòng. Trên thực tế, tôi thậm chí không cần dòng đầy đủ, chỉ cần 4 gạch đầu dòng mỗi dòng là đủ. Ngược lại, cú pháp cho literals regexp trong đặc tả ECMAScript5 chiếm trọn một trang ...
Jörg W Mittag

2
Điều này làm tôi nhớ đến một câu hỏi 'quan trọng' khác: "Nó được phát âm là 'car' hay 'char'?"
Ash

2
Câu hỏi này có vẻ lạc đề vì nó là về thuật ngữ chứ không phải về lập trình.
Toto

Câu trả lời:


563
/regexp?/    


107
câu trả lời này là đầy đủ của chiến thắng
Meder omuraliev

12
+1 - Tôi biết bạn đã làm gì ở đó
Nick Craver

5
@Igor: đó chính xác là những gì ?có nghĩa trong một biểu thức chính quy , {0,1}. Đúng, một số regexp? engine không hỗ trợ dấu chấm hỏi nhưng chúng rất tệ ;-) Dù sao thì Perl cũng có, và nó là thứ gần nhất với "tiêu chuẩn" cho cú pháp biểu thức chính quy.
David Z

6
+1 đó là thiên tài tuyệt đối!
Matthew J Morrison

6
Đây không phải là câu trả lời cho câu hỏi được hỏi.
Azat

64

Googlefight cho biết regex thắng, 685000 đến 289000 (khoảng 2,37: 1).

Ngoài ra, regexp rất lạ khi nói to vì có quá ít từ (nếu có?) Kết thúc bằng âm "-ksp", nhưng có rất nhiều từ kết thúc bằng âm "-ecks".


7
Trong World of Warcraft, mọi người ra ngoài để đạt được một số "điểm kinh nghiệm" (viết tắt của "điểm kinh nghiệm"). Vì vậy, nói "exp" không khó và cũng không nghe có vẻ lạ. Tất cả chỉ đơn giản là vấn đề người nói sử dụng từ đó như thế nào.
Shi

1
Tôi muốn phát âm "exp" như "cũ đi đái" - Tôi không chơi WoW ...
Adrian Lynch

1
Tôi thích câu trả lời, nhưng tôi thích cách phát âm của regexp hơn . Nói đơn giản là regex là thiếu, vì nó không tính hết các phụ âm trong đầu. Thông thường các chữ viết tắt nên làm điều đó, ví dụ. hằng số phải là const , không phải con .
Adam Hunyadi

@Shi Người chơi Warcraft hầu như luôn đọc hoặc viết "exp".
Navid Vafaei

24

Cả hai đều ổn. "regex" phổ biến hơn, nhưng "regexp" đã được sử dụng rộng rãi hơn các câu trả lời khác ở đây cho thấy. Vài ví dụ:


2
Man regexp trên máy mac của tôi xuất hiện một trang đàn ông Tcl. Hmmm ... có lẽ đó không phải là sự chứng thực.
dmckee --- ex-moderator kitten

17

regexngắn hơn; do đó, tốt hơn :) Ngoài ra, nó dễ dàng hơn để phát âm.


10

Cách viết tắt được chấp nhận là "regex".

Theo kinh nghiệm của tôi, "Regexp" chỉ được sử dụng trong ngữ cảnh của Javascript nơi đối tượng đại diện cho một biểu thức chính quy thực sự được gọi RegExp.


3
và trong emacs. Chức năng cho việc tìm kiếm một biểu thức chính quy là isearch-forward-regexpvv
Adam Rosenfield

2
ECMAScript nói chung - thậm chí ActionScript gọi nóRegExp
Amarghosh


1
Chà, trong bản ghi nhớ ban đầu của QED, nơi Dennis Ritchie và Ken Thompson giới thiệu tính năng hoàn toàn mới của biểu thức chính quy (trong ngữ cảnh soạn thảo văn bản), họ đã viết: "Trong cuộc thảo luận tiếp theo," <regexp> "sẽ biểu thị một biểu thức chính quy . "
Sz.

6

Tôi nghĩ rằng "regex" phổ biến hơn (ví dụ: gói Java java.util.regex). Nếu 10.000 người hâm mộ Elvis không thể sai, thì tôi sẽ bỏ phiếu cho điều đó dựa trên sức mạnh của các con số.


2
Và trong NET nó làSystem.Text.RegularExpressions.Regex
Anthony Pegram

6

Theo Wikipedia

Trong máy tính, biểu thức chính quy, còn được gọi là regex hoặc regexp, ...


10
Ai bỏ phiếu cho một câu trích dẫn từ Wikipedia?!?
Adam Harte

7
@Adam Harte: Ai bỏ phiếu cho các câu hỏi tu từ?
Andrew Grimm,

@ Andrew haha, nó thực sự là một "câu hỏi tuyên bố câu hỏi"
Adam Harte

5

"regex" phổ biến hơn và những gì được sử dụng trong Câu hỏi thường gặp về Perl. Google cho 4,5 triệu lượt truy cập cho "regex" và 3,6 triệu lượt truy cập cho "regexp". Wikipedia sử dụng cả hai.

Bạn thích cái nào hơn? Tôi không nghĩ ai đó sẽ nghĩ xấu về bạn nếu bạn sử dụng chúng thay thế cho nhau.


4
Điều thú vị là "perldoc perlre" (mô tả các biểu thức chính quy trong perl), nói "regex" ở khắp mọi nơi nhưng lại tham chiếu đến "Regexp Quote-Like Operators" trong perlop. "perldoc perlop" là một chút nhầm lẫn ans nói cả hai, mặc dù chủ yếu là "regex". "perl -le 'print ref (qr / x /)'" in ra "Regexp". Vì vậy, perl là nhầm lẫn, tôi muốn nói.
Peter V. Mørch

4

Tôi sẽ nói đó là "regex", điều này dựa trên kinh nghiệm của riêng tôi, cách tôi đã nghe và thảo luận cộng đồng ở đây.

Tôi không thể tìm thấy nó vào lúc này, nhưng cuộc thảo luận này nằm trên thẻ meta over trên SO, đó là lý do tại sao đây là câu hỏi duy nhất được gắn thẻ "regexp" , phần còn lại (8441 và đang tiếp tục) được gắn thẻ "regex" .


Chỉ là một suy nghĩ phụ ở đây: nó có vấn đề gì là "chính xác?" Hãy suy nghĩ về mục đích ở đây, tại sao bạn sử dụng bất kỳ từ nào? Giao tiếp. Ở một mức độ nhất định, điều gì đúng hay không không quan trọng, điều quan trọng là bạn có thể giao tiếp hiệu quả với nhiều người hơn . Tôi có thể nói rằng bạn có thể dễ dàng tranh luận để sử dụng một thuật ngữ không chính xác, nếu đó là điều mà phần lớn khán giả của bạn sử dụng, vì giao tiếp là mục tiêu của bạn.


Lý do không có câu hỏi nào được gắn thẻ "regexp" là bởi vì một số người trong chúng ta tiếp tục xóa thẻ đó hoặc thay thế nó bằng "regex" (như tôi vừa làm ở đây). Chúng tôi không cần hai thẻ có cùng ý nghĩa và "regex" có lợi thế hơn về sở thích của người dùng (mặc dù điều đó có thể chỉ vì nó ngắn hơn).
Alan Moore

@Alan - vâng, nhưng bạn không nghĩ rằng trong trường hợp này "regexp" CŨNG là một lựa chọn tốt, bởi vì câu hỏi là về việc so sánh hai?
Vilx-

1
@ Vlix- Bạn có thể dễ dàng lập luận rằng cả hai thẻ đều không phù hợp, vì câu hỏi thực sự là về thuật ngữ, không phải về regex. Nhưng các câu trả lời dường như cho thấy "regex" là người chiến thắng, vậy tại sao chúng ta không tiếp tục với điều đó?
Alan Moore

2
CẬP NHẬT: Câu hỏi / A này đã chạy khóa học trước khi tính năng "từ đồng nghĩa thẻ" được triển khai tại đây tại StackOverflow. Bây giờ các thẻ thích regexpregular-expressionđược tự động chuyển đổi thành regex.
Alan Moore

4

Tôi nghĩ đã đến lúc bỏ suy nghĩ về các từ viết tắt hoặc viết tắt. Các regex mà chúng ta sử dụng trong các công việc hàng ngày của mình hoàn toàn khác với các biểu thức thông thường của khoa học máy tính hoặc lý thuyết ngôn ngữ chính thức. Đây là lý do tại sao Larry Wall và các thành viên nổi bật khác của cộng đồng Perl đã ưa thích "regex" trong nhiều năm: gọi chúng là RegExp hoặc RegEx, hoặc thậm chí RE, gợi ý một mối quan hệ không còn áp dụng.


3

Tôi cũng đã nghe / đọc:

reg-exp

Và một số người thích regexvì số nhiều regexes"đẹp hơn"! (ngoài lý do được giải thích bằng các câu trả lời khác).

.NET regex:System.Text.RegularExpressions.Regex

JavaScript regexp:RegExp


1
Hoặc n.pl. Regexen.
Walf

2

Cả hai đều phù hợp với văn bản nghị luận, mặc dù bạn có thể không muốn nói to "regexp" quá thường xuyên;)

Để sử dụng trong mã, tôi nghĩ rằng regexp có lẽ rõ ràng hơn. Đặc biệt nếu bạn sử dụng cách viết hoa như RegEx / RegExp. Hậu tố Ex thường được sử dụng để biểu thị phiên bản mở rộng của một hàm đơn giản hơn ... tức là CreateWindow / CreateWindowEx trong Windows API, vì vậy RegExp có thể ít mơ hồ hơn một chút về khả năng đọc của mã.


-1

Tôi thích "re" hơn, nhưng nó phụ thuộc vào ngôn ngữ. JavaScript liệt kê nó là "RegExp", trong khi hầu hết các ngôn ngữ khác chỉ gọi nó là "RegEx".

Khi googling, hãy sử dụng phiên bản ngắn hơn. Nhưng trong các diễn đàn, hãy sử dụng "re";)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.