Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / 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 đá euro trang chohiện tạiPhiên bản hoặc kèo bóng đá euro trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

4.6. Khớp kèo bóng đá euro

Có hai cách tiếp cận riêng biệt để phù kèo bóng đá euro với mẫu được cung cấp quaPostgreSQL: TheSQL nhưNhà điều hành vàPOSIX-Style Biểu thức chính quy.

Tip:Nếu bạn có nhu cầu phù kèo bóng đá euro với mẫu ngoài điều này, hoặc muốn thực hiện các thay thế theo mô hình hoặc bản dịch, xem xét viết một chức năng do người dùng xác định Perl hoặc tcl.

4.6.1. kèo bóng đá euro khớp vớinhư

chuỗinhưkèo bóng đá euro[Escape11640_11658 ]chuỗikhông thíchkèo bóng đá euro[EscapeEscape-Character ]

mỗikèo bóng đá euroXác định một tập kèo bóng đá euro của chuỗi. ThenhưBiểu thức trả về đúng nếuchuỗiIS chứa trong tập kèo bóng đá euro các chuỗi được biểu thị bởikèo bóng đá euro. (Như mong đợi,không thíchBiểu thức trả về Sai nếunhưTrả về đúng và Vice Versa. kèo bóng đá euro biểu thức tương đương làKhông (chuỗinhưkèo bóng đá euro).)

nếukèo bóng đá eurokhông chứa phần trăm dấu hiệu hoặc dấu gạch dưới, sau đó mẫu chỉ đại diện chuỗi chính; Trong trường kèo bóng đá euro đónhưhoạt động giống như toán tử bằng. MỘT gạch dưới (_) trongkèo bóng đá eurolà viết tắt của (phù kèo bóng đá euro) bất kỳ đơn lẻ nào tính cách; một dấu hiệu phần trăm (%) khớp bất kỳ chuỗi nào bằng không hoặc nhiều ký tự.

kèo bóng đá euro số ví dụ:

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

nhưMẫu phù kèo bóng đá euro luôn luôn Bao gồm toàn bộ chuỗi. Để phù kèo bóng đá euro với một mẫu ở bất cứ đâu trong một chuỗi, mẫu do đó phải bắt đầu và kết thúc với phần trăm dấu hiệu.

Để phù kèo bóng đá euro với dấu gạch dưới hoặc dấu hiệu phần trăm mà không có Kết kèo bóng đá euro các ký tự khác, ký tự tương ứng trongkèo bóng đá europhải đi trước nhân vật thoát. Nhân vật thoát mặc định là dấu gạch chéo ngược nhưng kèo bóng đá euro cái khác có thể được chọn bằng cách sử dụngEscapemệnh đề. Để phù kèo bóng đá euro với nhân vật thoát chính nó, viết hai ký tự thoát.

13991_14366Escape; Sau đó, Backslash không đặc biệt đối vớinhưnữa. (Nhưng nó vẫn là đặc biệt cho trình phân tích cú pháp theo nghĩa đen của chuỗi, vì vậy bạn vẫn cần hai trong số họ.)

cũng có thể chọn không có ký tự thoát nào bằng cách viếtEscape ''14688_14808

Từ khóailike14863_14893nhưĐể thực hiện trận đấu trường kèo bóng đá euro không nhạy cảm theo địa phương hoạt động. Đây không phải là trong TheSQLtiêu chuẩn nhưng làPostgreSQLphần mở rộng.

người vận hành~ ~tương đương vớinhư~ ~*tương ứng vớiilike. Cũng có! ~ ~! ~ ~*Người vận hành đại diện chokhông thíchkhông phải ilike. Tất cả các nhà khai thác này làPostgreSQL-Specific.

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

Bảng 4-10. Phù kèo bóng đá euro với biểu thức chính quy Người vận hành

Nhà điều hành Mô tả Ví dụ
~ 16350_16394 'Thomas' ~ '.*Thomas.*'
~* khớp với biểu thức chính quy, trường kèo bóng đá euro không nhạy cảm 'Thomas' ~** '.*Thomas.*'
! ~ không phù kèo bóng đá euro với biểu thức thông thường, trường kèo bóng đá euro 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 đá euro 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 đá euro so vớinhưHàm. Nhiều công cụ Unix chẳng hạn nhưEGREP, SEDhoặcAWKSử dụng một mẫu Ngôn ngữ phù kèo bóng đá euro tương tự như ngôn ngữ được mô tả đây.

kèo bóng đá euro biểu thức chính quy là kèo bóng đá euro chuỗi ký tự là kèo bóng đá euro Định nghĩa viết tắt của kèo bóng đá euro bộ chuỗi (ABộ thông thường). Một chuỗi được cho là phù kèo bóng đá euro với Biểu thức chính quy nếu nó là thành viên của bộ thông thường được mô tả bởi biểu thức chính quy. Như vớinhư, Chuỗi mô hình kèo bóng đá euro khớp nhân vật chính xác trừ khi chúng là những nhân vật đặc biệt trong Ngôn ngữ biểu thức thông thường --- nhưng biểu thức thường xuyên sử dụng các ký tự đặc biệt khác vớinhưkhông. Không giống nhưnhưkèo bóng đá euro, biểu thức chính quy là được phép khớp ở bất cứ đâu trong một chuỗi, trừ khi thông thường Biểu thức được neo rõ ràng đến đầu hoặc kết thúc của chuỗi.

Biểu thức chính quy ("Re"s), như được xác định trongPOSIX1003.2, đến dưới hai dạng: hiện đại Res (gần như củaEGREP; 1003.2 gọi những cái này"Mở rộng"res) và lỗi thời (gần đó củaED; 1003.2"cơ bản"res).PostgreSQLthực hiện hình thức hiện đại.

A (hiện đại) Re là kèo bóng đá euro hoặc nhiều không trốngcành, tách biệt bởi|. Nó phù kèo bóng đá euro với bất cứ điều gì phù kèo bóng đá euro với một trong những nhánh.

kèo bóng đá euro nhánh là kèo bóng đá euro hoặc nhiềumảnh,, liên kết. Nó phù kèo bóng đá euro với một trận đấu cho lần đầu tiên, theo sau là một khớp với thứ hai, v.v.

kèo bóng đá euro mảnh làAtomCó thể theo sau là kèo bóng đá euro*, +, ?hoặcBound. kèo bóng đá euro nguyên tử theo sau là*khớp với chuỗi từ 0 trở lên nguyên tử. kèo bóng đá euro nguyên tử theo sau là+khớp với a Trình tự 1 hoặc nhiều hơn các trận đấu của nguyên tử. kèo bóng đá euro nguyên tử theo sau là?khớp với chuỗi 0 hoặc 1 trận đấu của nguyên tử.

ABoundTiếp theo là kèo bóng đá euro số nguyên thập phân không dấu, Có thể theo sau,Có thể tiếp theo là kèo bóng đá euro số nguyên thập phân không dấu khác, luôn luôn theo sau qua. Các số nguyên phải nằm giữa 0 Vàre_dup_max(255) Bao gồm Có hai trong số họ, thứ nhất có thể không vượt quá thứ hai. MỘT nguyên tử theo sau là kèo bóng đá euro ràng buộc chứa kèo bóng đá euro số nguyênivà không có dấu phẩy phù kèo bóng đá euro với chuỗi chính xáciTrận đấu của nguyên tử. kèo bóng đá euro nguyên tử theo sau là kèo bóng đá euro ràng buộc chứa kèo bóng đá euro số nguyênivà dấu phẩy khớp với chuỗiihoặc nhiều trận đấu của nguyên tử. kèo bóng đá euro nguyên tử theo sau là kèo bóng đá euro ràng buộc chứa hai số nguyêniJkhớp với chuỗiiđếnJ(bao gồm) Các trận đấu của nguyên tử.

Lưu ý:kèo bóng đá euro toán tử lặp lại (?, *, +hoặc giới hạn) không thể theo dõi người khác toán tử lặp lại. Toán tử lặp lại không thể bắt đầu biểu thức hoặc biểu hiện phụ hoặc theo dõi^hoặc|.

ANAtom21465_21508()(phù kèo bóng đá euro với một trận đấu cho biểu thức chính quy), một tập kèo bóng đá euro trống()(khớp chuỗi null), aBiểu thức khung(xem bên dưới),.(phù kèo bóng đá euro với bất kỳ ký tự nào),^21822_21894$(khớp với Chuỗi null ở cuối chuỗi đầu vào), A\theo sau là kèo bóng đá euro trong các ký tự^. [$ () |*+? \(Kết kèo bóng đá euro ký tự đó được coi là một ký tự thông thường), A\theo sau bởi bất kỳ nhân vật nào khác (phù kèo bóng đá euro với nhân vật đó được coi là nhân vật thông thường, như thể\22317_22429theo sau là một ký tự không phải là một chữ số là một nhân vật bình thường, không phải là sự khởi đầu của một ràng buộc. Nó là bất kèo bóng đá euro pháp để kết thúc một re với\.

Lưu ý rằng Backslash (\) Đã có một ý nghĩa đặc biệt trong các chữ viết, vì vậy để viết một kèo bóng đá euro hằng số chứa dấu gạch chéo ngược, bạn phải viết hai dấu gạch chéo ngược trong truy vấn.

ABiểu thức khunglà danh sách ký tự được đặt trong[]. Nó bình thường khớp với bất kỳ ký tự duy nhất từ ​​danh sách (nhưng xem bên dưới). Nếu như Danh sách bắt đầu bằng^, nó phù kèo bóng đá euro với bất kỳ ký tự đơn (nhưng xem bên dưới) không phải từ 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-23279_23404[0-9]inASCIIphù kèo bóng đá euro với bất kỳ số thập phân chữ số. Đó là bất kèo bóng đá euro 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 đối chiếu phụ thuộc vào chuỗi và các chương trình di động nên Tránh dựa vào họ.

Để bao gồm kèo bóng đá euro nghĩa đen]trong danh sách, làm cho nó trở thành ký tự đầu tiên (theo sau có thể^). Để bao gồm kèo bóng đá euro nghĩa đen-, biến nó thành nhân vật đầu tiên hoặc cuối cùng hoặc Điểm cuối thứ hai của kèo bóng đá euro phạm vi. Sử dụng kèo bóng đá euro nghĩa đen-Là điểm cuối đầu tiên của kèo bóng đá euro phạm vi, hãy đặt nó TRONG[..]Để biến nó thành một phần tử đối chiếu (xem bên dưới). Với ngoại lệ Trong số này và một số kết kèo bóng đá euro bằng cách sử dụng[(xem các đoạn tiếp theo), tất cả các ký tự đặc biệt khác, bao gồm\, Mất ý nghĩa đặc biệt của họ trong kèo bóng đá euro biểu thức khung.

Trong biểu thức khung, phần tử đối chiếu (a nhân vật, kèo bóng đá euro chuỗi nhiều nhân vật đối chiếu như thể nó là kèo bóng đá euro ký tự duy nhất, hoặc kèo bóng đá euro tên trình tự đối chiếu cho kèo bóng đá euro trong hai) được đặt trong[..]là viết tắt của chuỗi các ký tự của điều đó yếu tố đối chiếu. Trình tự là một yếu tố duy nhất của Danh sách biểu thức khung. Một biểu thức khung chứa một Do đó, phần tử đối chiếu nhiều ký tự có thể phù kèo bóng đá euro hơn Một nhân vật, ví dụ: Nếu trình tự đối chiếu bao gồm mộtCHPhần tử đối chiếu, sau đó là re[[. Ch.]]*Cphù kèo bóng đá euro với năm đầu tiên ký tự củaCHCHCC.

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

Trong biểu thức khung, tên của kèo bóng đá euro lớp ký tự kèm theo[::]là viết tắt của danh sách tất cả các 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ạ, in, Punc, không gian, trên, XDigit. Những thứ này là viết tắt của các lớp nhân vật được xác định trongctype. kèo bóng đá euro địa điểm có thể cung cấp người khác. kèo bóng đá euro lớp ký tự có thể không được sử dụng làm điểm cuối của phạm vi.

Có hai trường kèo bóng đá euro đặc biệt của biểu thức khung: The biểu thức khung[[: <:]][[::]]27058_27312ctype27368_27457POSIX1003.2 và nên được được sử dụng kèo bóng đá euro cách thận trọng trong phần mềm nhằm mục đích di động cho người khác hệ thống.

Trong trường kèo bóng đá euro RE có thể khớp nhiều hơn một nền tảng của một chuỗi đã cho, RE khớp với một chuỗi bắt đầu sớm nhất trong chuỗi. Nếu RE có thể khớp nhiều hơn một nền tảng Bắt đầu tại thời điểm đó, nó phù kèo bóng đá euro với lâu nhất. Biểu hiện phụ cũng phù kèo bóng đá euro với các chuỗi con dài nhất có thể, tùy thuộc vào hạn chế rằng toàn bộ trận đấu càng lâu càng tốt, với Các biểu hiện phụ bắt đầu sớm hơn trong việc ưu tiên lại những người bắt đầu sau. Lưu ý rằng các biểu hiện phụ cấp cao hơn Ưu tiên hơn thành phần cấp thấp hơn của họ biểu hiện phụ.

Độ dài khớp được đo bằng các ký tự, không đối chiếu các yếu tố. Một chuỗi null được coi là dài hơn không phù kèo bóng đá euro tất cả. Ví dụ,BB*khớp với Ba ký tự giữa củaABBBC, (Wee | tuần) (Hiệp sĩ | Đêm)khớp 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 phụ đề phù kèo bóng đá euro với tất cả ba ký tự và khi(A*)*IS phù kèo bóng đá euro vớiBCCả toàn bộ Re và biểu hiện phụ được đặt ở chuỗi null.

28931_29271xtrở thành[xx]. Khi nó xuất hiện bên trong một khung Biểu thức, tất cả các đối tác trường kèo bóng đá euro của nó được thêm vào Biểu thức khung, sao cho (ví dụ:)[x]trở thành[xx][^x]trở thành[^xx].

Không có giới hạn cụ thể về độ dài của res, ngoại trừ Trong chừng mực bộ nhớ bị hạn chế. Việc sử dụng bộ nhớ xấp xỉ tuyến tính về kích thước re, và phần lớn không nhạy cảm với sự phức tạp lại, Ngoại trừ sự lặp lại giới hạn. Sự lặp lại giới hạn là được thực hiện bởi việc mở rộng vĩ mô, tốn kém về thời gian và Không gian nếu số lượng là sự lặp lại lớn hoặc giới hạn được lồng nhau. MỘT RE thích, nói,(((A 1.100) 1.100) 1.100) 1.100) 1.100Will (cuối cùng) chạy gần như mọi máy hiện có ra khỏi hoán đổi không gian.[1]

ghi chú

[1]

Điều này được viết vào năm 1994, nhớ bạn. Các con số có có thể thay đổi, nhưng vấn đề vẫn tồn tại.