Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển:Devel
Phiên bản không được hỗ trợ:12/11/10/9.6/9.5/9.4/9.3/9.2/9.1/9.0/8.4/8.3/8.2/8.1/8.0/7.4/7.3/7.2/7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng kèo bóng đá cúp c2 trang chohiện tạiPhiên bản hoặc kèo bóng đá cúp c2 trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

9.7. Khớp kèo bóng đá cúp c2

Có ba cách tiếp cận riêng biệt để khớp kèo bóng đá cúp c2 được cung cấp bởiPostgreSQL: truyền thốngSQL nhưtoán tử, gần đây hơnTương tự nhưtoán tử (được thêm vào SQL: 1999) vàPosix-Style Biểu thức chính quy. Ngoài cơ bản"Chuỗi này có phù kèo bóng đá cúp c2 với mẫu này không?"Các toán tử, các chức năng có sẵn để trích xuất hoặc thay thế các chuỗi con phù kèo bóng đá cúp c2 và để chia một chuỗi tại các vị trí phù kèo bóng đá cúp c2.

Tip:Nếu bạn có nhu cầu khớp kèo bóng đá cúp c2 vượt xa điều này, hãy xem xét việc viết một chức năng do người dùng xác định trong Perl hoặc Tcl.

THẬN TRỌNG

Trong khi hầu hết các tìm kiếm biểu hiện thường xuyên có thể được thực thi rất nhanh, các biểu thức thông thường có thể được xác định là mất lượng thời gian và bộ nhớ tùy ý để xử lý. Hãy cảnh giác với việc chấp nhận các kèo bóng đá cúp c2 tìm kiếm biểu hiện thường xuyên từ các nguồn thù địch.

Tìm kiếm bằng cách sử dụngTương tự nhưCác kèo bóng đá cúp c2 có cùng các mối nguy hiểm bảo mật, vìTương tự nhưCung cấp nhiều khả năng giống nhưPOSIX-Style Biểu thức chính quy.

nhưTìm kiếm, đơn giản hơn nhiều so với hai tùy chọn khác, sẽ an toàn hơn khi sử dụng với các nguồn kèo bóng đá cúp c2 có thể là giao diện.

9.7.1.như

chuỗinhưkèo bóng đá cúp c2[EscapeEscape-Character]chuỗikhông thíchkèo bóng đá cúp c2[12656_12665Escape-Character]

ThenhưBiểu thức trả về đúng nếuchuỗiphù kèo bóng đá cúp c2 với được cung cấpkèo bóng đá cúp c2. (Như mong đợi,không thíchBiểu thức trả về sai nếunhưTrả về đúng và ngược lại. kèo bóng đá cúp c2 biểu thức tương đương làkhông (chuỗinhưkèo bóng đá cúp c2).)

nếukèo bóng đá cúp c2không chứa các dấu hiệu phần trăm hoặc nhấn mạnh, thì mẫu chỉ đại diện cho chính chuỗi; Trong trường kèo bóng đá cúp c2 đónhưhoạt động giống như toán tử bằng. kèo bóng đá cúp c2 dấu gạch dưới (_) trongkèo bóng đá cúp c2là viết tắt của (khớp) bất kỳ ký tự đơn nào; kèo bóng đá cúp c2 dấu hiệu phần trăm (%) khớp với bất kỳ chuỗi nào bằng không hoặc nhiều ký tự.

kèo bóng đá cúp c2 số ví dụ:

'ABC' như 'ABC'TRUE'ABC' như 'A%'TRUE'ABC' như '_B_'TRUE'ABC' như 'C'Sai

nhưKết kèo bóng đá cúp c2 mẫu luôn bao gồm toàn bộ chuỗi. Do đó, nếu nó muốn khớp với một chuỗi ở bất cứ đâu trong một chuỗi, mẫu phải bắt đầu và kết thúc với một dấu phần trăm.

Để phù kèo bóng đá cúp c2 với dấu chữ hoặc dấu phần trăm theo nghĩa đen mà không khớp với các ký tự khác, ký tự tương ứng trongkèo bóng đá cúp c2phải đi trước ký tự thoát. Ký tự thoát mặc định là dấu gạch chéo ngược nhưng có thể chọn kèo bóng đá cúp c2 ký tự khác bằng cách sử dụngEscapemệnh đề. Để phù kèo bóng đá cúp c2 với chính ký tự thoát, viết hai ký tự thoát.

Lưu ý:Nếu bạn cóStandard_Conforming_StringsĐã tắt, bất kỳ dấu gạch chéo ngược nào bạn viết trong kèo bóng đá cúp c2 hằng số chuỗi theo nghĩa đen sẽ cần phải được nhân đôi. Nhìn thấyPhần 4.1.2.1Để biết thêm thông tin.

Cũng có thể chọn không có ký tự thoát nào bằng cách viếtEscape ''. Điều này vô hiệu hóa hiệu quả cơ chế thoát, điều này khiến cho không thể tắt ý nghĩa đặc biệt của dấu gạch dưới và phần trăm trong kèo bóng đá cúp c2.

Từ khóailikecó thể được sử dụng thay vìnhưĐể làm cho trường kèo bóng đá cúp c2 phù kèo bóng đá cúp c2 không nhạy cảm theo ngôn ngữ hoạt động. Đây không phải là trongSQLtiêu chuẩn nhưng làPostgreSQLphần mở rộng.

Người vận hành~ ~là tương đương vớinhư~ ~*tương ứng vớiilike. Cũng có! ~ ~! ~ ~*kèo bóng đá cúp c2 toán tử đại diện chokhông thíchkhông phải ilike, tương ứng. Tất cả kèo bóng đá cúp c2 toán tử này làPostgreSQL-Specific. Bạn có thể thấy kèo bóng đá cúp c2 tên toán tử này trongGiải thíchĐầu ra và kèo bóng đá cúp c2 địa điểm tương tự, vì trình phân tích cú pháp thực sự dịchnhưet al. cho kèo bóng đá cúp c2 toán tử này.

kèo bóng đá cúp c2 cụm từnhư,ilike,không thíchkhông phải ilikethường được coi là người vận hành trongPostgreSQLCú pháp; Ví dụ: chúng có thể được sử dụng trongBiểu thức Nhà điều hànhany (SBURERY) Cấu trúc, mặc dùEscapeĐiều khoản không thể được bao gồm ở đó. Trong một số trường kèo bóng đá cúp c2 tối nghĩa, có thể cần phải sử dụng tên toán tử cơ bản thay thế.

9.7.2.Tương tự nhưBiểu thức chính quy

chuỗiTương tự nhưkèo bóng đá cúp c2[EscapeEscape-Character]chuỗikhông giống vớikèo bóng đá cúp c2[EscapeEscape-Character]

TheTương tự nhưtoán tử trả về đúng hay sai tùy thuộc vào việc kèo bóng đá cúp c2 của nó có khớp với chuỗi đã cho hay không. Nó tương tự nhưnhư, ngoại trừ việc nó diễn giải kèo bóng đá cúp c2 bằng định nghĩa của SQL Standard về biểu thức chính quy. Các biểu thức chính quy SQL là một sự giao thoa tò mò giữanhưKý hiệu và ký hiệu biểu thức chính quy chung.

nhưnhư, TheTương tự nhưToán tử chỉ thành công nếu kèo bóng đá cúp c2 của nó khớp với toàn bộ chuỗi; Điều này không giống như hành vi biểu thức chính quy phổ biến trong đó kèo bóng đá cúp c2 có thể khớp với bất kỳ phần nào của chuỗi.như,Tương tự nhưsử dụng_%Như ký tự đại diện biểu thị bất kỳ ký tự đơn nào và bất kỳ chuỗi nào, tương ứng (chúng có thể so sánh với..*Trong kèo bóng đá cúp c2 biểu thức chính quy POSIX).

Ngoài kèo bóng đá cúp c2 cơ sở này được mượn từnhư,Tương tự nhưHỗ trợ các Metacharacters phù kèo bóng đá cúp c2 với mô hình này được mượn từ các biểu thức thông thường POSIX:

  • 18627_18630biểu thị sự xen kẽ (kèo bóng đá cúp c2 trong hai lựa chọn thay thế).

  • *biểu thị sự lặp lại của mục trước bằng 0 hoặc nhiều lần.

  • +biểu thị sự lặp lại của mục trước kèo bóng đá cúp c2 hoặc nhiều lần.

  • ?biểu thị sự lặp lại của mục trước bằng 0 hoặc kèo bóng đá cúp c2 lần.

  • Mbiểu thị sự lặp lại của mục trước đó chính xácMthời gian.

  • M,biểu thị sự lặp lại của mục trướcMhoặc nhiều lần hơn.

  • M,nbiểu thị sự lặp lại của mục trước ít nhấtMvà không quánthời gian.

  • ngoặc đơn()Có thể được sử dụng để nhóm các mục thành kèo bóng đá cúp c2 mục logic duy nhất.

  • Biểu thức khung[...]Chỉ định kèo bóng đá cúp c2 lớp ký tự, giống như trong các biểu thức chính quy POSIX.

Lưu ý rằng khoảng thời gian (.) không phải là kèo bóng đá cúp c2 metacharacter choTương tự như.

như vớinhư, Backslash vô hiệu hóa ý nghĩa đặc biệt của bất kỳ metacharacters nào; hoặc kèo bóng đá cúp c2 ký tự thoát khác có thể được chỉ định vớiEscape.

kèo bóng đá cúp c2 số ví dụ:

'ABC' tương tự như 'ABC'TRUE'ABC' tương tự như 'A'Sai'ABC' tương tự như '%(b | d)%'true'ABC' tương tự như '(b | c)%'Sai

TheSubringHàm với ba tham số,Subring (chuỗitừkèo bóng đá cúp c2choEscape-Character), cung cấp trích xuất một chuỗi con phù kèo bóng đá cúp c2 với mẫu biểu thức chính quy SQL. Như vớiTương tự như, kèo bóng đá cúp c2 được chỉ định phải khớp với toàn bộ chuỗi dữ liệu hoặc nếu không hàm này không thành công và trả về null. Để chỉ ra một phần của kèo bóng đá cúp c2 nên được trả về thành công, kèo bóng đá cúp c2 phải chứa hai lần xuất hiện của ký tự thoát theo sau là một trích dẫn kép ("). Văn bản phù kèo bóng đá cúp c2 với phần của mẫu giữa các điểm đánh dấu này được trả về.

kèo bóng đá cúp c2 số ví dụ, với#"Phân định chuỗi trả về:

Subring ('foobar' từ '%#"o_b#"%' cho '#')OOBSubring ('foobar' từ '#"o_b#"%' cho '#')null

9.7.3.POSIXBiểu thức chính quy

Bảng 9-12Liệt kê các toán tử có sẵn để khớp kèo bóng đá cúp c2 bằng cách sử dụng các biểu thức thông thường POSIX.

Bảng 9-12. Toán tử khớp biểu thức thông thường

Nhà điều hành Mô tả Ví dụ
~ khớp với biểu thức chính quy, trường kèo bóng đá cúp c2 nhạy cảm 'Thomas' ~ '.*Thomas.*'
~* khớp với biểu thức chính quy, trường kèo bóng đá cúp c2 không nhạy cảm 'Thomas' ~*'.*Thomas.*'
! ~ không khớp với biểu thức chính quy, trường kèo bóng đá cúp c2 nhạy cảm 'Thomas'! ~ '.*Thomas.*'
! ~* không khớp với biểu thức chính quy, trường kèo bóng đá cúp c2 không nhạy cảm 'Thomas'! ~*'.*Vadim.*'

POSIXBiểu thức chính quy cung cấp một phương tiện mạnh mẽ hơn để khớp kèo bóng đá cúp c2 so vớinhưTương tự nhưNgười vận hành. Nhiều công cụ Unix nhưEGREP,SEDhoặcAWKSử dụng ngôn ngữ phù kèo bóng đá cúp c2 với mẫu tương tự như ngôn ngữ được mô tả ở đây.

Một biểu thức chính quy là một chuỗi ký tự là định nghĩa viết tắt của một tập kèo bóng đá cúp c2 các chuỗi (ABộ thông thường). Một chuỗi được cho là phù kèo bóng đá cúp c2 với một biểu thức thông thường nếu nó là thành viên của tập kèo bóng đá cúp c2 thông thường được mô tả bởi biểu thức thông thường.như23689_23878nhưkhông. Không giống nhưnhưCác kèo bóng đá cúp c2, biểu thức chính quy được phép khớp ở bất cứ đâu trong một chuỗi, trừ khi biểu thức thông thường được neo rõ ràng vào đầu hoặc đầu của chuỗi.

kèo bóng đá cúp c2 số ví dụ:

'ABC' ~ 'ABC'TRUE'ABC' ~ '^A'TRUE'ABC' ~ '(b | d)'TRUE'ABC' ~ '^(b | c)'Sai

ThePOSIXNgôn ngữ kèo bóng đá cúp c2 được mô tả chi tiết hơn nhiều bên dưới.

TheSubringhàm với hai tham số,Subring (chuỗitừkèo bóng đá cúp c2), cung cấp trích xuất một chuỗi con phù kèo bóng đá cúp c2 với mẫu biểu thức chính quy POSIX. Nó trả về NULL nếu không có khớp, nếu không thì phần của văn bản phù kèo bóng đá cúp c2 với mẫu.

kèo bóng đá cúp c2 số ví dụ:

Subring ('foobar' từ 'O.B')OOBSubring ('foobar' từ 'o (.) B')O

Theregexp_replaceHàm cung cấp thay thế văn bản mới cho các chuỗi con phù kèo bóng đá cúp c2 với các mẫu biểu thức chính quy POSIX. Nó có cú phápregexp_replace(Nguồn,kèo bóng đá cúp c2,Thay thế[,cờ]). TheNguồnChuỗi được trả về không thay đổi nếu không có khớp vớikèo bóng đá cúp c2. Nếu có kèo bóng đá cúp c2 trận đấu,NguồnChuỗi được trả về vớiThay thếChuỗi được thay thế cho chuỗi con phù kèo bóng đá cúp c2. TheThay thếChuỗi có thể chứa\n, trong đónlà 1 đến 9, để chỉ ra rằng phần phụ nguồn khớp vớinbiểu hiện phụ của kèo bóng đá cúp c2 của kèo bóng đá cúp c2 nên được chèn và nó có thể chứa\ &Để chỉ ra rằng phần phụ phù kèo bóng đá cúp c2 với toàn bộ mẫu nên được chèn. Viết\Nếu bạn cần đặt kèo bóng đá cúp c2 dấu gạch chéo ngược theo nghĩa đen vào văn bản thay thế. ThecờTham số là kèo bóng đá cúp c2 chuỗi văn bản tùy chọn chứa các cờ đơn hoặc nhiều hơn để thay đổi hành vi của chức năng. Lá cờiChỉ định kết kèo bóng đá cúp c2 không nhạy cảm với trường kèo bóng đá cúp c2, trong khi cờgChỉ định thay thế cho mỗi chuỗi con phù kèo bóng đá cúp c2 thay vì chỉ cái đầu tiên. Cờ được hỗ trợ (mặc dù khôngg) được mô tả trongBảng 9-20.

kèo bóng đá cúp c2 số ví dụ:

regexp_replace ('foobarbaz', 'b ..', 'x')fooxbazregexp_replace ('foobarbaz', 'b ..', 'x', 'g')fooxxregexp_replace ('foobarbaz', 'b (..)', 'x \ 1y', 'g')fooxaryxazy

Theregexp_matchesHàm trả về một mảng văn bản của tất cả các chuỗi con bị bắt do kết kèo bóng đá cúp c2 một mẫu biểu thức chính quy POSIX. Nó có cú phápregexp_matches(chuỗi,kèo bóng đá cúp c2[,cờ]). Hàm có thể trả về không có hàng, kèo bóng đá cúp c2 hàng hoặc nhiều hàng (xemgcờ bên dưới). Nếukèo bóng đá cúp c2Không khớp, hàm trả về không có hàng. Nếu mẫu không chứa biểu hiện phụ, thì mỗi hàng được trả về là một mảng văn bản đơn yếu tố chứa chuỗi con phù kèo bóng đá cúp c2 với toàn bộ mẫu.n'phần tử là phần phụ phù kèo bóng đá cúp c2 vớinbiểu hiện phụ của kèo bóng đá cúp c2 của kèo bóng đá cúp c2 (không tính"Không bắt giữ"ngoặc đơn; Xem bên dưới để biết chi tiết).cờTham số là kèo bóng đá cúp c2 chuỗi văn bản tùy chọn chứa các cờ đơn hoặc nhiều hơn để thay đổi hành vi của chức năng. Lá cờgLàm cho hàm tìm thấy mỗi trận đấu trong chuỗi, không chỉ lần đầu tiên và trả về kèo bóng đá cúp c2 hàng cho mỗi trận đấu như vậy. Cờ được hỗ trợ (mặc dù khôngg) được mô tả trongBảng 9-20.

kèo bóng đá cúp c2 số ví dụ:

chọn regexp_matches ('foobarbequebaz', '(bar) (beque)');

Có thể buộcregexp_matches ()Để luôn trả lại kèo bóng đá cúp c2 hàng bằng cách sử dụng kèo bóng đá cúp c2 lựa chọn phụ; Điều này đặc biệt hữu ích trong kèo bóng đá cúp c2ChọnDanh sách mục tiêu Khi bạn muốn tất cả các hàng được trả về, thậm chí không phù kèo bóng đá cúp c2:

chọn col1, (chọn regexp_matches (col2, '(thanh) (beque)')) từ tab;

Theregexp_split_to_tableHàm chia một chuỗi bằng kèo bóng đá cúp c2 biểu thức chính quy POSIX làm dấu phân cách. Nó có cú phápRegEXP_SPLIT_TO_TABLE(chuỗi,kèo bóng đá cúp c2[,Cờ]). Nếu không có khớp vớikèo bóng đá cúp c2, hàm trả vềchuỗi. Nếu có ít nhất kèo bóng đá cúp c2 trận đấu, với mỗi trận đấu, nó sẽ trả về văn bản từ cuối trận đấu cuối cùng (hoặc đầu chuỗi) cho đầu trận đấu.Cờtham số là kèo bóng đá cúp c2 chuỗi văn bản tùy chọn chứa các cờ đơn hoặc nhiều hơn để thay đổi hành vi của chức năng.regexp_split_to_tableHỗ trợ kèo bóng đá cúp c2 cờ được mô tả trongBảng 9-20.

Theregexp_split_to_arrayHàm hoạt động giống nhưregexp_split_to_table, ngoại trừregexp_split_to_arrayTrả về kết quả của nó dưới dạng mảngText. Nó có cú phápregexp_split_to_array(chuỗi,kèo bóng đá cúp c2[,cờ]). kèo bóng đá cúp c2 tham số giống như đối vớiregexp_split_to_table.

kèo bóng đá cúp c2 số ví dụ:

Chọn foo từ regexp_split_to_table ('con cáo màu nâu nhanh nhảy qua con chó lười biếng', '\ s+') như foo;

Như ví dụ cuối cùng chứng minh, kèo bóng đá cúp c2 chức năng phân chia regexp bỏ qua kèo bóng đá cúp c2 khớp có độ dài bằng không xảy ra ở đầu hoặc cuối chuỗi hoặc ngay sau trận đấu trước. Điều này trái với định nghĩa nghiêm ngặt của khớp regexp được thực hiện bởiregexp_matches, nhưng thường là hành vi thuận tiện nhất trong thực tế. kèo bóng đá cúp c2 hệ thống phần mềm khác như Perl sử dụng kèo bóng đá cúp c2 định nghĩa tương tự.

9.7.3.1. Chi tiết biểu thức thông thường

POSTGRESQLkèo bóng đá cúp c2 biểu thức thường xuyên được triển khai bằng gói phần mềm được viết bởi Henry Spencer. Phần lớn mô tả về kèo bóng đá cúp c2 biểu thức thông thường dưới đây được sao chép nguyên văn từ hướng dẫn của mình.

Biểu thức chính quy (reS), như được định nghĩa trongPOSIX1003.2, có hai dạng:mở rộng reS hoặcereS (gần như củaEGREP) vàBASIC reS hoặcBRES (gần như củaED).POSTGRESQL33896_34093reS bằng cách sử dụng kèo bóng đá cúp c2 tiện ích mở rộng không posix này được gọi làNâng cao reS hoặcs trong tài liệu này. Ares gần như là kèo bóng đá cúp c2 siêu âm chính xác của các ERE, nhưng Bres có kèo bóng đá cúp c2 số sự không tương thích chứng minh (cũng như bị hạn chế hơn nhiều).

Lưu ý: PostgreSQLBan đầu luôn cho rằng kèo bóng đá cúp c2 biểu thức chính quy tuân theo các quy tắc là. Tuy nhiên, các quy tắc ERE hoặc BRE hạn chế hơn có thể được chọn bằng cách chi tiêuTùy chọn nhúngđến kèo bóng đá cúp c2 RE, như được mô tả trongPhần 9.7.3.4. Điều này có thể hữu ích cho khả năng tương thích với kèo bóng đá cúp c2 ứng dụng mong đợi chính xácPOSIX1003.2 Quy tắc.

kèo bóng đá cúp c2 biểu thức chính quy được định nghĩa là kèo bóng đá cúp c2 hoặc nhiềucành, được phân tách bởi|. Nó phù kèo bóng đá cúp c2 với bất cứ thứ gì phù kèo bóng đá cúp c2 với một trong các nhánh.

kèo bóng đá cúp c2 nhánh bằng không hoặc nhiều hơnĐịnh lượng nguyên tửhoặcràng buộc, được kết kèo bóng đá cúp c2. Nó phù kèo bóng đá cúp c2 với một trận đấu cho trận đấu thứ nhất, sau đó là một trận đấu cho trận thứ hai, v.v.;

kèo bóng đá cúp c2 nguyên tử được định lượng làAtomCó thể theo sau kèo bóng đá cúp c2Trình định lượng. Không có bộ định lượng, nó phù kèo bóng đá cúp c2 với một trận đấu cho nguyên tử.AtomCó thể là bất kỳ khả năng nào được hiển thị trongBảng 9-13. kèo bóng đá cúp c2 bộ định lượng có thể và ý nghĩa của chúng được hiển thị trongBảng 9-14.

Aràng buộckhớp với kèo bóng đá cúp c2 chuỗi trống, nhưng chỉ khớp với các điều kiện cụ thể được đáp ứng. kèo bóng đá cúp c2 ràng buộc có thể được sử dụng khi có thể sử dụng kèo bóng đá cúp c2 nguyên tử, ngoại trừ nó không thể được theo sau bởi kèo bóng đá cúp c2 bộ định lượng.Bảng 9-15; kèo bóng đá cúp c2 số ràng buộc khác được mô tả sau.

Bảng 9-13. kèo bóng đá cúp c2 nguyên tử biểu hiện chính quy

Atom Mô tả
(re) (trong đórelà bất kỳ biểu thức chính quy nào) khớp với kèo bóng đá cúp c2 trận đấu chore, với trận đấu được ghi nhận để báo cáo có thể
(?:re) Như trên, nhưng trận đấu không được ghi nhận để báo cáo (A"Không bắt giữ"tập kèo bóng đá cúp c2 dấu ngoặc đơn) (chỉ ares)
. khớp với bất kỳ ký tự đơn nào
[Chars] ABiểu thức khung, phù kèo bóng đá cúp c2 với bất kỳ ai trong sốchars(xemPhần 9.7.3.2Để biết thêm chi tiết)
\K (trong đóK\khớp với ký tự dấu gạch chéo ngược
\C WHEREClà chữ và số (có thể theo sau bởi các ký tự khác) là kèo bóng đá cúp c2Escape, xemPhần 9.7.3.3(chỉ ares; trong eres và bres, điều này phù kèo bóng đá cúp c2C)
Khi được theo sau bởi kèo bóng đá cúp c2 ký tự không phải là kèo bóng đá cúp c2 chữ số, khớp với ký tự tay trái; Khi được theo sau bởi kèo bóng đá cúp c2 chữ số, nó là khởi đầu của kèo bóng đá cúp c2Bound(xem bên dưới)
x WHERExlà kèo bóng đá cúp c2 ký tự duy nhất không có ý nghĩa khác, khớp với ký tự đó

kèo bóng đá cúp c2 RE không thể kết thúc bằng dấu gạch chéo ngược (\).

Lưu ý:Nếu bạn cóStandard_Conforming_StringsĐã tắt, bất kỳ dấu gạch chéo ngược nào bạn viết trong kèo bóng đá cúp c2 hằng số chuỗi theo nghĩa đen sẽ cần phải được nhân đôi. Nhìn thấyPhần 4.1.2.1Để biết thêm thông tin.

Bảng 9-14. Định lượng biểu thức thông thường

định lượng khớp
* Trình tự từ 0 trở lên của Atom
+ kèo bóng đá cúp c2 chuỗi từ 1 hoặc nhiều hơn các kết quả của nguyên tử
? kèo bóng đá cúp c2 chuỗi các trận đấu 0 hoặc 1 của nguyên tử
M kèo bóng đá cúp c2 chuỗi chính xácMphù kèo bóng đá cúp c2 với nguyên tử
M, kèo bóng đá cúp c2 chuỗiMhoặc nhiều trận đấu của nguyên tử
M,n kèo bóng đá cúp c2 chuỗiMđếnn(Bao gồm) kèo bóng đá cúp c2 trận đấu của nguyên tử;MKhông thể vượt quán
*? Phiên bản không xanh của*
+? Phiên bản không xanh của+
?? Phiên bản không xanh?
M? Phiên bản không xanh củaM
M,? Phiên bản không xanh củaM,
M,n? Phiên bản không xanhM,n

Các biểu kèo bóng đá cúp c2 sử dụng...được gọi làgiới hạn. SốMnTrong kèo bóng đá cúp c2 giới hạn là số nguyên thập phân không dấu với các giá trị cho phép từ 0 đến 255 bao gồm.

Không GreedyĐịnh lượng (chỉ có sẵn trong Ares) khớp với kèo bóng đá cúp c2 khả năng giống như bình thường tương ứng của chúng (tham lam) kèo bóng đá cúp c2 đối tác, nhưng thích số nhỏ nhất hơn là số lượng trận đấu lớn nhất. Nhìn thấyPhần 9.7.3.5Để biết thêm chi tiết.

Lưu ý:42465_42533**không kèo bóng đá cúp c2 lệ. Trình định lượng không thể bắt đầu biểu thức hoặc biểu hiện phụ hoặc theo dõi^hoặc|.

Bảng 9-15. kèo bóng đá cúp c2 ràng buộc biểu thức chính quy

ràng buộc Mô tả
^ khớp ở đầu chuỗi
$ khớp ở cuối chuỗi
(? =re) LOẠI HIỆU QUẢkhớp với bất kỳ điểm nào phù kèo bóng đá cúp c2 với chuỗi conreBắt đầu (chỉ ares)
(?!re) SOUNT LOOKAHEADkhớp với bất kỳ điểm nào không phù kèo bóng đá cúp c2 với bộ nềnreBắt đầu (chỉ ares)

kèo bóng đá cúp c2 ràng buộc xem xét không thể chứaTài liệu tham khảo trở lại(xemPhần 9.7.3.3) và tất cả kèo bóng đá cúp c2 dấu ngoặc đơn trong chúng được coi là không bắt giữ.

9.7.3.2. Biểu thức khung

ABiểu thức khunglà danh sách kèo bóng đá cúp c2 ký tự được đặt trong[]. Nó thường khớp với bất kỳ ký tự đơn từ danh sách (nhưng xem bên dưới).^, nó phù kèo bóng đá cúp c2 với bất kỳ ký tự đơn nàokhôngTừ phần còn lại của danh sách. Nếu hai ký tự trong danh sách được phân tách bởi-, Đây là tốc ký cho toàn bộ kèo bóng đá cúp c2 ký tự giữa hai (bao gồm) trong chuỗi đối chiếu, ví dụ:[0-9]in44705_44712khớp với bất kỳ chữ số thập phân nào. Đó là bất kèo bóng đá cúp c2 pháp đối với hai phạm vi để chia sẻ một điểm cuối, ví dụ:A-C-E. Phạm vi rất phụ thuộc vào chuỗi, vì vậy kèo bóng đá cúp c2 chương trình di động sẽ tránh dựa vào chúng.

Để bao gồm kèo bóng đá cúp c2 nghĩa đen]Trong danh sách, hãy biến nó thành ký tự đầu tiên (sau^, nếu được sử dụng). Để bao gồm kèo bóng đá cúp c2 nghĩa đen-, Làm cho nó trở thành ký tự đầu tiên hoặc cuối cùng hoặc điểm cuối thứ hai của kèo bóng đá cúp c2 phạm vi. Sử dụng kèo bóng đá cúp c2 nghĩa đen-Là điểm cuối đầu tiên của kèo bóng đá cúp c2 phạm vi, đặt nó trong[..]Để biến nó thành một phần tử đối chiếu (xem bên dưới). Ngoại trừ các ký tự này, một số kết kèo bóng đá cúp c2 sử dụng[(xem các đoạn tiếp theo) và Escapes (chỉ ares), tất cả các nhân vật đặc biệt khác đều mất ý nghĩa đặc biệt của họ trong kèo bóng đá cúp c2 biểu thức khung. Cụ thể,\không đặc biệt khi tuân theo các quy tắc ERE hoặc BRE, mặc dù nó đặc biệt (như giới thiệu kèo bóng đá cúp c2 lối thoát) trong Ares.

45783_45979[..]là viết tắt của chuỗi ký tự của phần tử đối chiếu đó. Trình tự được coi là kèo bóng đá cúp c2 yếu tố duy nhất trong danh sách của biểu thức khung.CHPhần tử đối chiếu, sau đó là re[[. Ch.]]*Ckhớp với năm ký tự đầu tiên củaCHCHCC.

Lưu ý: PostgreSQLHiện tại không hỗ trợ kèo bóng đá cúp c2 yếu tố đối chiếu đa nhân vật. Thông tin này mô tả hành vi trong tương lai có thể.

Trong biểu thức khung, phần tử đối chiếu được đặt trong[==]Lớp tương đương, đứng cho kèo bóng đá cúp c2 chuỗi ký tự của tất cả kèo bóng đá cúp c2 yếu tố đối chiếu tương đương với phần đó, bao gồm cả chính nó. .[..].) Ví dụ, nếuo^là thành viên của kèo bóng đá cúp c2 lớp tương đương, sau đó[[= o =]],[[=^=]][o^]Tất cả đều đồng nghĩa. kèo bóng đá cúp c2 lớp tương đương không thể là điểm cuối của phạm vi.

Trong biểu thức khung, tên của kèo bóng đá cúp c2 lớp ký tự được đặt trong[::]là viết tắt của danh sách tất cả kèo bóng đá cúp c2 ký tự thuộc lớp đó. Tên lớp nhân vật tiêu chuẩn là:Alnum,Alpha,trống,cntrl,Digit,đồ thị,Hạ,print,Punc,không gian,trên,XDigit. Những đại diện cho kèo bóng đá cúp c2 lớp ký tự được xác định trongctype. kèo bóng đá cúp c2 địa điểm có thể cung cấp cho người khác.

Có hai trường kèo bóng đá cúp c2 đặc biệt của biểu thức khung: Biểu thức khung[[: <:]][[::]]là các ràng buộc, khớp với các chuỗi trống ở đầu và cuối của kèo bóng đá cúp c2 từ tương ứng. kèo bóng đá cúp c2 từ được định nghĩa là kèo bóng đá cúp c2 chuỗi các ký tự từ không đi trước cũng như không theo sau bởi các ký tự từ.Alnumký tự (theo định nghĩa bởiCtype) hoặc dấu gạch dưới. Đây là kèo bóng đá cúp c2 tiện ích mở rộng, tương thích với nhưng không được chỉ định bởiPOSIX1003.2 và nên được sử dụng một cách thận trọng trong phần mềm nhằm mục đích di động cho các hệ thống khác. Các lối thoát hạn chế được mô tả dưới đây thường là thích kèo bóng đá cúp c2 hơn;

9.7.3.3. Biểu thức thông thường thoát ra

Escapeslà kèo bóng đá cúp c2 chuỗi đặc biệt bắt đầu bằng\theo sau là kèo bóng đá cúp c2 ký tự chữ và số. Escapes có kèo bóng đá cúp c2 số giống: Nhập cảnh nhân vật, tốc ký lớp, thoát khỏi sự ràng buộc và tài liệu tham khảo trở lại.\tiếp theo là một ký tự chữ và số nhưng không cấu thành một lối thoát kèo bóng đá cúp c2 lệ là bất kèo bóng đá cúp c2 pháp trong Ares. Trong Eres, không có lối thoát: bên ngoài biểu thức khung, A\theo sau là ký tự chữ và số chỉ là viết tắt của ký tự đó như kèo bóng đá cúp c2 nhân vật thông thường và bên trong biểu thức khung,\là kèo bóng đá cúp c2 ký tự thông thường. (Cái sau là kèo bóng đá cúp c2 điều không tương thích thực tế giữa ERE và ARES.)

Escapes ký tựtồn tại để dễ dàng chỉ định kèo bóng đá cúp c2 ký tự không in và khác trong RES. Chúng được hiển thị trongBảng 9-16.

Escapes-Shorthand EscapesCung cấp tốc ký cho kèo bóng đá cúp c2 số lớp ký tự thường được sử dụng. Chúng được hiển thị trongBảng 9-17.

AEscape Escapelà kèo bóng đá cúp c2 ràng buộc, khớp với chuỗi trống nếu các điều kiện cụ thể được đáp ứng, được viết dưới dạng kèo bóng đá cúp c2 lối thoát. Chúng được hiển thị trongBảng 9-18.

ATham chiếu lại(\n) khớp với cùng một chuỗi phù kèo bóng đá cúp c2 với biểu hiện phụ được chỉ định bởi sốn(xemBảng 9-19). Ví dụ,([BC]) \ 1MatchesBBhoặcCCnhưng khôngBChoặcCB. Sự biểu hiện phụ phải hoàn toàn đi trước tham chiếu trở lại trong RE.

Bảng 9-16. Biểu thức thông thường-nhập ký tự thoát

Escape Mô tả
\ A cảnh báo (chuông), như trong c
\ B Backspace, như trong C
\ B Từ đồng nghĩa với Backslash (\) để giúp giảm nhu cầu tăng gấp đôi
\ Cx (trong đóxlà bất kỳ ký tự nào) ký tự có 5 bit thứ tự thấp giống như củax, và có kèo bóng đá cúp c2 bit khác đều bằng không
\ E Nhân vật có tên trình tự đối chiếu làESChoặc không thành công, ký tự có giá trị bát phân033
\ f Form Feed, như trong C
\ n Newline, như trong C
\ r Trở lại vận chuyển, như trong C
\ T Tab ngang, như trong C
\ uWXYZ (trong đóWXYZchính xác là bốn chữ số thập lục phân) Nhân vật có giá trị thập lục phân là0xWXYZ
\ ustuvwxyz (trong đóstuvwxyzchính xác là tám chữ số thập lục phân) Nhân vật có giá trị thập lục phân là0xstuvwxyz
\ V Tab dọc, như trong C
\ xHHH (trong đóHHHlà bất kỳ chuỗi chữ số thập lục phân) ký tự có giá trị thập lục phân là0xHHH(kèo bóng đá cúp c2 ký tự duy nhất cho dù sử dụng bao nhiêu chữ số thập lục phân)
\ 0 ký tự có giá trị là0(byte null)
\XY (trong đóXYchính xác là hai chữ số bát phân và không phải làTham chiếu lại) ký tự có giá trị bát phân là0XY
\XYZ (trong đóXYZChính xác là ba chữ số bát phân và không phải làTham chiếu lại) ký tự có giá trị bát phân là0XYZ

kèo bóng đá cúp c2 chữ số thập lục phân là0-9,A-fA-f. Chữ số bát phân là0-7.

Nhập ký tự số thoát ra kèo bóng đá cúp c2 giá trị chỉ định bên ngoài phạm vi ASCII (0-127) có ý nghĩa phụ thuộc vào mã hóa cơ sở dữ liệu. Khi mã hóa là UTF-8, kèo bóng đá cúp c2 giá trị thoát tương đương với kèo bóng đá cúp c2 điểm mã Unicode, ví dụ\ U1234có nghĩa là ký tựU+1234. Đối với các mã hóa multibyte khác, thoát nhập ký tự thường chỉ xác định sự kết kèo bóng đá cúp c2 của các giá trị byte cho ký tự.

Escapes nhập ký tự luôn được coi là ký tự thông thường. Ví dụ,\ 135]Trong ASCII, nhưng\ 135Không chấm dứt biểu thức khung.

Bảng 9-17. Biểu thức thông thường của lớp biểu diễn thoát ra

Escape Mô tả
\ D [[: chữ số:]]
\ S [[: không gian:]]
\ W [[: alnum:] _](Ghi chú được bao gồm)
\ D [^[: chữ số:]]
\ S [^[: không gian:]]
\ W [^[: alnum:] _](Ghi chú được bao gồm)

Trong biểu thức khung,\ D,\ S\ WMất dấu ngoặc bên ngoài của họ và\ D,\ S\ Wlà bất kèo bóng đá cúp c2 pháp. (Vì vậy, ví dụ,[A-C \ D]là tương đương với[A-C [: Digit:]]. Cũng,[A-C \ D], tương đương với[A-C^[: Digit:]], là bất kèo bóng đá cúp c2 pháp.)

Bảng 9-18. Biểu thức thông thường bị ràng buộc thoát ra

Escape Mô tả
\ A Chỉ phù kèo bóng đá cúp c2 ở đầu chuỗi (xemPhần 9.7.3.5Vì điều này khác với^)
\ m Chỉ phù kèo bóng đá cúp c2 ở đầu một từ
\ m Chỉ phù kèo bóng đá cúp c2 ở cuối một từ
\ y Chỉ phù kèo bóng đá cúp c2 ở đầu hoặc cuối của một từ
\ y Chỉ phù kèo bóng đá cúp c2 tại một điểm không phải là đầu hoặc kết thúc của một từ
\ Z Chỉ phù kèo bóng đá cúp c2 ở cuối chuỗi (xemPhần 9.7.3.5Vì điều này khác với$)

kèo bóng đá cúp c2 từ được định nghĩa là trong đặc điểm kỹ thuật của[[: <:]][[::]]ở trên. Bị ràng buộc Escapes là bất kèo bóng đá cúp c2 pháp trong các biểu thức khung.

Bảng 9-19. Biểu thức thông thường tài liệu tham khảo trở lại

Escape Mô tả
\M (trong đóMlà kèo bóng đá cúp c2 chữ số khác) kèo bóng đá cúp c2 tham chiếu trở lại choM
\MNN (trong đóMlà kèo bóng đá cúp c2 chữ số khác vànnlà kèo bóng đá cúp c2 số chữ số khác và giá trị thập phânMNNkhông lớn hơn số lượng dấu ngoặc đơn đóng cho đến nay)MNN

Lưu ý:Có kèo bóng đá cúp c2 sự mơ hồ vốn có giữa Escapes ký tự octal và các tài liệu tham khảo trở lại, được giải quyết bằng các heuristic sau đây, như được gợi ý ở trên. kèo bóng đá cúp c2 số không hàng đầu luôn chỉ ra kèo bóng đá cúp c2 lối thoát bát phân.

9.7.3.4. Biểu thức thông thường metasyntax

Ngoài cú pháp chính được mô tả ở trên, còn có kèo bóng đá cúp c2 số hình thức đặc biệt và các cơ sở cú pháp linh tinh có sẵn.

kèo bóng đá cúp c2 RE có thể bắt đầu bằng kèo bóng đá cúp c2 trong hai đặc biệtGiám đốcTiền tố. Nếu kèo bóng đá cúp c2 re bắt đầu bằng***:, phần còn lại của RE được lấy dưới dạng là kèo bóng đá cúp c2. (Điều này thường không có tác dụng trongPOSTGRESQL, vì độ phân giải được coi là Ares; Nhưng nó có ảnh hưởng nếu chế độ ERE hoặc BRE đã được chỉ định bởicờtham số cho hàm regex.) Nếu kèo bóng đá cúp c2 re bắt đầu bằng*** =, phần còn lại của RE được coi là kèo bóng đá cúp c2 chuỗi theo nghĩa đen, với tất cả các ký tự được coi là các ký tự thông thường.

AN có thể bắt đầu bằngTùy chọn nhúng: kèo bóng đá cúp c2 chuỗi(?XYZ)(trong đóXYZlà một hoặc nhiều ký tự chữ cái) Chỉ định các tùy chọn ảnh hưởng đến phần còn lại của RE. Các tùy chọn này ghi đè bất kỳ tùy chọn được xác định trước đó-đặc biệt, chúng có thể ghi đè hành vi nhạy cảm trường kèo bóng đá cúp c2 được ngụ ý bởi toán tử Regex hoặccờTham số cho hàm regex. kèo bóng đá cúp c2 chữ cái tùy chọn có sẵn được hiển thị trongBảng 9-20. Lưu ý rằng kèo bóng đá cúp c2 chữ cái tùy chọn tương tự được sử dụng trongCờtham số của kèo bóng đá cúp c2 hàm regex.

Bảng 9-20. Được nhúng-kèo bóng đá cúp c2 chữ cái tùy chọn

Tùy chọn Mô tả
B phần còn lại của re là bre
C 62185_62236
E Phần còn lại của re là ere
i Phù kèo bóng đá cúp c2 không nhạy cảm với chữ hoa Case (xemPhần 9.7.3.5) (Ghi đè loại toán tử)
M Từ đồng nghĩa lịch sử chon
n Kết kèo bóng đá cúp c2 nhạy cảm với Newline (xemPhần 9.7.3.5)
P Kết kèo bóng đá cúp c2 nhạy cảm với một phần mới (xemPhần 9.7.3.5)
Q Phần còn lại của Re là kèo bóng đá cúp c2 nghĩa đen ("Trích dẫn") Chuỗi, tất cả kèo bóng đá cúp c2 ký tự thông thường
S Kết kèo bóng đá cúp c2 không nhạy cảm với bản tin (mặc định)
T Cú pháp chặt chẽ (mặc định; xem bên dưới)
W nghịch đảo kèo bóng đá cúp c2 phần mới nhạy cảm ("Weird") Kết kèo bóng đá cúp c2 (xem​​Phần 9.7.3.5)
x Cú pháp mở rộng (xem bên dưới)

Tùy chọn nhúng có hiệu lực tại)Kết thúc chuỗi. Chúng chỉ có thể xuất hiện khi bắt đầu kèo bóng đá cúp c2 (sau***:Giám đốc nếu có).

Ngoài thông thường (chặt chẽ) re Cú pháp, trong đó tất cả các ký tự đều có ý nghĩa, có kèo bóng đá cúp c2Mở rộngCú pháp, có sẵn bằng cách chỉ định nhúngxTùy chọn. Trong cú pháp mở rộng, kèo bóng đá cúp c2 ký tự không gian trắng trong RE bị bỏ qua, cũng như tất cả kèo bóng đá cúp c2 ký tự giữa A#và dòng mới sau (hoặc kết thúc của Re). Điều này cho phép đoạn văn và nhận xét kèo bóng đá cúp c2 re phức tạp.

  • kèo bóng đá cúp c2 ký tự không gian trắng hoặc#trước\được giữ lại

  • ​​không gian trắng hoặc#Trong biểu thức khung được giữ lại

  • không gian trắng và nhận xét không thể xuất hiện trong kèo bóng đá cúp c2 ký hiệu đa nhân vật, chẳng hạn như(?:

Với mục đích này, kèo bóng đá cúp c2 ký tự không gian trắng là trống, tab, newline và bất kỳ ký tự nào thuộc vềSpacelớp ký tự.

Cuối cùng, trong kèo bóng đá cúp c2 biểu thức khung bên ngoài, trình tự(?#TTT)(trong đóTTTCó bất kỳ văn bản nào không chứa)) là kèo bóng đá cúp c2 nhận xét, hoàn toàn bị bỏ qua. kèo bóng đá cúp c2 lần nữa, điều này không được phép giữa các ký tự của các ký hiệu đa nhân vật, như(?:. Những bình luận như vậy là kèo bóng đá cúp c2 cổ vật lịch sử hơn là kèo bóng đá cúp c2 cơ sở hữu ích, và việc sử dụng của chúng không được chấp nhận;

Khôngcủa kèo bóng đá cúp c2 tiện ích mở rộng metasyntax này có sẵn nếu ban đầu*** =Giám đốc đã chỉ định rằng đầu vào của người dùng được coi là kèo bóng đá cúp c2 chuỗi theo nghĩa đen chứ không phải là kèo bóng đá cúp c2 re.

9.7.3.5. Quy tắc khớp biểu thức chính quy

Trong trường kèo bóng đá cúp c2 RE có thể khớp nhiều hơn một chuỗi con của một chuỗi đã cho, RE khớp với một lần bắt đầu sớm nhất trong chuỗi. Nếu RE có thể khớp nhiều hơn một chuỗi con bắt đầu tại thời điểm đó, thì trận đấu dài nhất có thể hoặc trận đấu ngắn nhất có thể sẽ được thực hiện, tùy thuộc vào việc RE làGreedyhoặcKhông Greedy.

Cho dù RE có tham lam hay không được xác định bởi kèo bóng đá cúp c2 quy tắc sau:

  • Hầu hết kèo bóng đá cúp c2 nguyên tử và tất cả kèo bóng đá cúp c2 ràng buộc, không có thuộc tính tham lam (vì chúng không thể khớp với số lượng văn bản biến

  • Thêm dấu ngoặc đơn xung quanh RE không thay đổi sự tham lam của nó.

  • kèo bóng đá cúp c2 nguyên tử được định lượng với bộ định lượng lặp lại cố định (MhoặcM?) có cùng sự tham lam (có thể không có) như chính nguyên tử.

  • kèo bóng đá cúp c2 nguyên tử được định lượng với các bộ định lượng bình thường khác (bao gồmM,nvớiMbằngn) là tham lam (thích trận đấu dài nhất).

  • kèo bóng đá cúp c2 nguyên tử được định lượng với bộ định lượng không màu xanh lá cây (bao gồmM,n?vớiMbằngn) là không màu xanh lá cây (thích kết kèo bóng đá cúp c2 ngắn nhất).

  • kèo bóng đá cúp c2 nhánh-nghĩa là kèo bóng đá cúp c2 RE không có cấp cao nhất|toán tử - có cùng sự tham lam với nguyên tử được định lượng đầu tiên trong đó có thuộc tính tham lam.

  • kèo bóng đá cúp c2 RE bao gồm hai hoặc nhiều nhánh được kết nối bởi|Nhà điều hành luôn tham lam.

Các quy tắc trên liên kết các thuộc tính tham lam không chỉ với các nguyên tử được định lượng riêng lẻ, mà còn với các nhánh và toàn bộ RES có chứa các nguyên tử được định lượng. Điều đó có nghĩa là việc kết kèo bóng đá cúp c2 được thực hiện theo cách mà nhánh hoặc toàn bộ Re, phù kèo bóng đá cúp c2 với chuỗi con dài nhất hoặc ngắn nhất có thểNói chung. Khi độ dài của toàn bộ trận đấu được xác định, một phần của nó phù kèo bóng đá cúp c2 với bất kỳ biểu thức phụ cụ thể nào được xác định trên cơ sở thuộc tính tham lam của biểu hiện phụ đó, với biểu hiện phụ bắt đầu từ trước trong lần ưu tiên RE bắt đầu từ sau.

kèo bóng đá cúp c2 ví dụ về ý nghĩa của điều này:

Chọn Subring ('XY1234Z', 'y*([0-9] 1,3)');Kết quả:123Chọn Chất nền ('XY1234Z', 'y*? ([0-9] 1,3)');Kết quả:1

Trong trường kèo bóng đá cúp c2 đầu tiên, toàn bộ Re là tham lam vìY*là tham lam. Nó có thể khớp với bắt đầu tạiyvà nó phù kèo bóng đá cúp c2 với chuỗi dài nhất có thể bắt đầu từ đó, tức là,Y123. Đầu ra là phần dấu ngoặc đơn của đó, hoặc123. Trong trường kèo bóng đá cúp c2 thứ hai, toàn bộ RE không phải là greedy vìY*?là không xanh. Nó có thể khớp với bắt đầu tạiYvà nó phù kèo bóng đá cúp c2 với chuỗi ngắn nhất có thể bắt đầu từ đó, tức là,Y1. Biểu hiện phụ[0-9] 1,3là tham lam nhưng nó không thể thay đổi quyết định về độ dài trận đấu tổng thể; Vì vậy, nó buộc phải khớp chỉ1.

Tóm lại, khi một RE chứa cả biểu hiện phụ tham lam và không tham lam, tổng chiều dài khớp càng dài nhất có thể hoặc càng ngắn càng tốt, theo thuộc tính được gán cho toàn bộ RE. Các thuộc tính được gán cho các biểu hiện phụ chỉ ảnh hưởng đến số lượng phù kèo bóng đá cúp c2 mà chúng được phép"Ăn"Liên quan đến nhau.

Bộ định lượng1,11,1?có thể được sử dụng để buộc sự tham lam hoặc không được đánh giá cao, tương ứng, trên biểu hiện phụ hoặc toàn bộ Re. Điều này rất hữu ích khi bạn cần toàn bộ RE để có kèo bóng đá cúp c2 thuộc tính tham lam khác với những gì được suy luận từ các yếu tố của nó.

chọn regexp_matches ('ABC01234XYZ', '(.*) (\ D+) (.*)');Kết quả:ABC0123,4, XYZ

Điều đó không hoạt động: Đầu tiên.*là tham lam nên"Ăn"càng nhiều càng tốt, rời khỏi\ d+Để phù kèo bóng đá cúp c2 ở vị trí cuối cùng có thể, chữ số cuối cùng. Chúng ta có thể cố gắng sửa chữa điều đó bằng cách làm cho nó không có màu xanh lá cây:

chọn regexp_matches ('ABC01234XYZ', '(.*?) (\ D+) (.*)');Kết quả:abc, 0, ""

Điều đó cũng không hoạt động, bởi vì bây giờ toàn bộ RE không phải là màu xanh lá cây và do đó, nó kết thúc trận đấu tổng thể càng sớm càng tốt. Chúng ta có thể nhận được những gì chúng ta muốn bằng cách buộc toàn bộ Re trở nên tham lam:

chọn regexp_matches ('ABC01234XYZ', '(?: (.*?) (\ D+) (.*))Kết quả:ABC, 01234, XYZ

Kiểm soát sự tham lam tổng thể của RE tách biệt với sự tham lam của các thành phần cho phép tính linh hoạt tuyệt vời trong việc xử lý các kèo bóng đá cúp c2 có độ dài thay đổi.

Khi quyết định xem khớp dài hơn hoặc ngắn hơn, độ dài khớp được đo bằng các ký tự, không đối chiếu các phần tử. kèo bóng đá cúp c2 chuỗi trống được coi là dài hơn không có khớp nào cả.BB*khớp với ba ký tự giữa củaABBBC;(Tuần | Wee) (đêm | Hiệp sĩ)phù kèo bóng đá cúp c2 với tất cả mười ký tự củaĐêm tuần; khi(.*).*được khớp vớiABCbiểu hiện phụ của dấu ngoặc đơn phù kèo bóng đá cúp c2 với cả ba ký tự; và khi(A*)*được khớp vớiBC72185_72264

Nếu kết kèo bóng đá cúp c2 độc lập trường kèo bóng đá cúp c2 được chỉ định, hiệu ứng này giống như tất cả các trường kèo bóng đá cúp c2 phân biệt đã biến mất từ ​​bảng chữ cái. Khi chữ cái tồn tại trong nhiều trường kèo bóng đá cúp c2 xuất hiện dưới dạng một ký tự thông thường bên ngoài biểu thức khung, nó được chuyển đổi thành một biểu thức khung có chứa cả hai trường kèo bóng đá cúp c2, ví dụ:xtrở thành[xx]. Khi nó xuất hiện bên trong biểu thức khung, tất cả kèo bóng đá cúp c2 đối tác của nó được thêm vào biểu thức khung, ví dụ:[x]trở thành[xx][^x]trở thành[^xx].

Nếu kết kèo bóng đá cúp c2 nhạy cảm với newline được chỉ định,.và biểu thức khung bằng cách sử dụng^73046_73173^$sẽ khớp với chuỗi trống sau và trước kèo bóng đá cúp c2 dòng mới tương ứng, ngoài việc khớp ở đầu và cuối chuỗi tương ứng. Nhưng là những lối thoát\ A\ ZTiếp tục khớp hoặc kết thúc chuỗichỉ.

Nếu kết kèo bóng đá cúp c2 nhạy cảm với một phần mới được chỉ định, điều này ảnh hưởng.và các biểu thức khung như với kết kèo bóng đá cúp c2 nhạy cảm với newline, nhưng không^$.

73773_73848^$Như với kết kèo bóng đá cúp c2 nhạy cảm với Newline, nhưng không phải.và biểu thức khung. Điều này không hữu ích lắm nhưng được cung cấp cho tính đối xứng.

9.7.3.6. Giới hạn và khả năng tương thích

Không có giới hạn cụ thể nào được áp đặt đối với độ dài của RES trong triển khai này. Tuy nhiên, kèo bóng đá cúp c2 chương trình dự định có tính di động cao không nên sử dụng độ phân giải dài hơn 256 byte, vì việc triển khai tuân thủ POSIX có thể từ chối chấp nhận RES đó.

Tính năng duy nhất của Ares thực sự không tương thích với Posix ERES là\Không mất ý nghĩa đặc biệt bên trong các biểu thức khung. Tất cả các tính năng khác đều sử dụng cú pháp là bất kèo bóng đá cúp c2 pháp hoặc có các hiệu ứng không xác định hoặc không xác định trong các ERE POSIX;***Cú pháp của kèo bóng đá cúp c2 giám đốc tương tự nằm ngoài cú pháp POSIX cho cả BRE và ERE.

Nhiều phần mở rộng được mượn từ Perl, nhưng kèo bóng đá cúp c2 số đã được thay đổi để làm sạch chúng và kèo bóng đá cúp c2 vài phần mở rộng Perl không có mặt. Sự không tương thích của lưu ý bao gồm\ B,\ B, Thiếu điều trị đặc biệt cho một dòng mới, việc bổ sung các biểu thức khung bổ sung cho những điều bị ảnh hưởng bởi sự kết kèo bóng đá cúp c2 nhạy cảm với dòng mới, các hạn chế đối với dấu ngoặc đơn và các tài liệu tham khảo trở lại trong các ràng buộc về phía trước/ngắn nhất.

75411_75519POSTGRESQL:

  • Trong Ares,\Tiếp theo là kèo bóng đá cúp c2 ký tự chữ và số là kèo bóng đá cúp c2 lối thoát hoặc lỗi, trong khi trong các bản phát hành trước đó, đó chỉ là kèo bóng đá cúp c2 cách khác để viết chữ và số. Điều này không phải là vấn đề nhiều vì không có lý do gì để viết kèo bóng đá cúp c2 chuỗi như vậy trong các bản phát hành trước đó.

  • Trong Ares,\vẫn là kèo bóng đá cúp c2 ký tự đặc biệt trong[], vì vậy kèo bóng đá cúp c2 nghĩa đen\Trong kèo bóng đá cúp c2 biểu thức khung phải được viết\.

9.7.3.7. Biểu thức chính quy cơ bản

Bres khác với các ERE ở kèo bóng đá cúp c2 số khía cạnh. Trong bres,|,+?là kèo bóng đá cúp c2 ký tự thông thường và không có tương đương với chức năng của chúng. kèo bóng đá cúp c2 dấu phân cách cho giới hạn là\\, vớiBản thân kèo bóng đá cúp c2 ký tự thông thường. Dấu ngoặc đơn cho biểu hiện phụ lồng nhau là\ (\), với()Bản thân kèo bóng đá cúp c2 ký tự thông thường.^là kèo bóng đá cúp c2 ký tự thông thường ngoại trừ ở đầu RE hoặc bắt đầu biểu hiện phụ,$là một ký tự thông thường ngoại trừ ở cuối RE hoặc kết thúc của biểu kèo bóng đá cúp c2 phụ và*^). Cuối cùng, các tài liệu tham khảo trở lại kèo bóng đá cúp c2 chữ số có sẵn và\ <\là từ đồng nghĩa với[[: <:]][[::]]tương ứng; Không có lối thoát nào khác có sẵn trong bres.