2011-01-26 31 views
9

Cụm từ "thông dụng" trong cụm từ "cụm từ thông dụng" có nghĩa là gì?Điều gì thường xuyên trong regex/"cụm từ thông dụng" nghĩa là gì?

Tôi đã nghe nói rằng regexes là thường xuyên cùng một lúc, nhưng không nhiều

+0

Có bất kỳ khía cạnh nào của cụm từ thông dụng không thường xuyên không?/được thiết kế để không chỉ phù hợp với một ngôn ngữ thông thường? – barlop

Trả lời

11

Các thường xuyên trong biểu thức chính quy xuất phát từ đó nó phù hợp với một regular language.

Khái niệm về regular expressions used in formal language theory hoàn toàn khác với những công cụ như PCRE gọi biểu thức chính quy. PCRE và các công cụ tương tự khác có các tính năng như lookahead, conditionalsrecursion, làm cho chúng có thể khớp với các ngôn ngữ không thường xuyên.

+0

Vì vậy, tôi cho rằng trong những ngày BRE, nó vẫn thường xuyên. Không có điều kiện. ERE sau đó thêm điều kiện .. vì vậy họ đã trở thành kỹ thuật có thể phù hợp với ngôn ngữ bất thường. Điều đó có đúng không? – barlop

+1

@barlop Không, POSIX BRE có tham chiếu ngược và tham chiếu ngược lại là một tính năng không thường xuyên. – hobbs

+0

@hobbs Tôi đoán backreferences không phục vụ cho ngữ pháp bất thường, mặc dù 'cos họ không thực sự liên quan đến phân tích cú pháp, họ đang thay thế. làm thế nào là thay thế để làm với một ngữ pháp? nó không phải là để theo sau một ngữ pháp, vì vậy nó không giống như điều kiện hoặc lookahead – barlop

4

Nó xuất phát từ ngôn ngữ thông thường. Đây là một phần của lý thuyết ngôn ngữ chính thức. Hãy xem Chomsky hierarchy để biết các ngôn ngữ chính thức khác.

1

Điều đó biểu thị rằng đó là ngôn ngữ thông thường.

Các quy trình vẫn phổ biến. Một số người cau mày với họ nhưng họ vẫn là một cách nhanh chóng và dễ dàng (nếu bạn biết cách sử dụng chúng) cách kết hợp một số loại dây nhất định. Cách thay thế thường là một vài dòng mã vòng lặp tốt thông qua các chuỗi và trích xuất các bit mà bạn cần, điều đó càng khó khăn hơn!

Tôi vẫn sử dụng chúng trên cơ sở thường xuyên (chơi chữ đầy đủ), để cung cấp cho bạn một trường hợp sử dụng tôi đã sử dụng một ngày khác để khớp các dòng hợp âm cho guitar so với lời bài hát. Chúng cũng thường được sử dụng cho những thứ như xác nhận địa chỉ email cơ bản và tương tự.

Chúng chắc chắn không chết.

+0

OP không gợi ý rằng họ không còn được sử dụng nữa, chỉ là họ không còn thường xuyên nữa, mà những người khác đã xác nhận. –

1

tôi nghĩ nó xuất phát từ thuật ngữ cho các lớp văn phạm tiếng rằng biểu thức thông thường mô tả: thường xuyên văn phạm (hoặc các ngôn ngữ "bình thường"). Trong trường hợp rằng thuật ngữ đến từ có khả năng được trả lời bởi một chuyến đi đến Wikipedia.

Công cụ regex hiện đại triển khai tất cả các tính năng đếm nhìn phía trước, mẫu lại phù hợp và đếm phụ, tốt, những công cụ này nhận ra một lớp ngữ pháp là phần lớn các ngữ pháp thông thường. Các biểu thức chính quy "cổ điển" tương ứng theo các cách cơ học cho các máy lý thuyết được gọi là "automata hữu hạn". Đó là một chủ đề thực sự thú vị trong và của chính nó.

Các vấn đề liên quan