Có ba cách tiếp cận riêng biệt để khớp soi kèo bóng đá truoctran được cung cấp bởiPostgreSQL: truyền thốngSQL như
Nhà điều hành, 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ảnChuỗi này có phù hợp với soi kèo bóng đá truoctran này không?HồiCá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ù hợp và để chia soi kèo bóng đá truoctran chuỗi tại các vị trí phù hợp.
Nếu bạn có nhu cầu khớp mẫu vượt xa điều này, hãy xem xét việc viết soi kèo bóng đá truoctran chức năng do người dùng xác định trong Perl hoặc Tcl.
Trong khi hầu hết các tìm kiếm biểu hiện thông thường có thể được thực thi rất nhanh, các biểu thức thông thường có thể được sử dụng để mất soi kèo bóng đá truoctran 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 mẫu 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran có thể là giao diện.
như
chuỗi
nhưsoi kèo bóng đá truoctran
[EscapeEscape-Character
]chuỗi
không thíchsoi kèo bóng đá truoctran
[EscapeEscape-Character
]
Thenhư
Biểu thức trả về đúng nếuchuỗi
phù hợp với được cung cấpsoi kèo bóng đá truoctran
. (Như mong đợi,không thích
Biểu thức trả về sai nếunhư
Trả về đúng và ngược lại. soi kèo bóng đá truoctran biểu thức tương đương làkhông (
.)chuỗi
nhưsoi kèo bóng đá truoctran
)
nếusoi kèo bóng đá truoctran
không chứa các dấu hiệu phần trăm hoặc nhấn mạnh, thì soi kèo bóng đá truoctran chỉ đại diện cho chính chuỗi; Trong trường hợp đónhư
hoạt động giống như toán tử bằng. soi kèo bóng đá truoctran dấu gạch dưới (_
) trongsoi kèo bóng đá truoctran
là viết tắt của (khớp) bất kỳ ký tự đơn nào; soi kèo bóng đá truoctran 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ự.
soi kèo bóng đá truoctran số ví dụ:
'ABC' như 'ABC'TRUE'ABC' như 'A%'TRUE'ABC' như '_B_'TRUE'ABC' như 'C'Sai
như
Kết hợp mẫu luôn bao gồm toàn bộ chuỗi. Do đó, nếu nó muốn khớp với soi kèo bóng đá truoctran chuỗi ở bất cứ đâu trong soi kèo bóng đá truoctran chuỗi, mẫu phải bắt đầu và kết thúc với soi kèo bóng đá truoctran dấu phần trăm.
Để phù hợp với dấu chữ hoặc dấu phần trăm theo nghĩa đen mà không khớp với soi kèo bóng đá truoctran ký tự khác, ký tự tương ứng trongsoi kèo bóng đá truoctran
phả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 soi kèo bóng đá truoctran ký tự khác bằng cách sử dụngEscape
mệnh đề. Để phù hợp với chính ký tự thoát, viết hai ký tự thoát.
Nếu bạn cóStandard_Conforming_StringsTắt, bất kỳ dấu gạch chéo ngược nào bạn viết trong soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran.
Từ khóailike
có thể được sử dụng thay vìnhư
Để làm cho trường hợp phù hợp 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àPostgreSQLMở rộng.
Người vận hành~ ~
tương đương vớinhư
và~ ~*
tương ứng vớiilike
. Cũng có! ~ ~
và! ~ ~*
soi kèo bóng đá truoctran toán tử đại diện chokhông thích
vàkhông phải ilike
, tương ứng. Tất cả soi kèo bóng đá truoctran toán tử này làPostgreSQL-Specific. Bạn có thể thấy soi kèo bóng đá truoctran tên toán tử này trongGiải thích
Đầu ra và soi kèo bóng đá truoctran địa điểm tương tự, vì trình phân tích cú pháp thực sự dịchnhư
et al. cho soi kèo bóng đá truoctran toán tử này.
cụm từnhư
, ilike
, không thích
vàkhông phải ilike
thường được coi là toán tử trongPostgreSQLCú pháp; Ví dụ: chúng có thể được sử dụng trongBiểu thức
Nhà điều hành
any (SBURERY
) Cấu trúc, mặc dùEscape
Điều khoản không thể được bao gồm ở đó. Trong soi kèo bóng đá truoctran số trường hợp tối nghĩa, có thể cần phải sử dụng tên toán tử cơ bản thay thế.
Tương tự như
Biểu thức chính quychuỗi
Tương tự nhưsoi kèo bóng đá truoctran
[EscapeEscape-Character
]chuỗi
không giống vớisoi kèo bóng đá truoctran
[EscapeEscape-Character
]
TheTương tự như
toán tử trả về đúng hay sai tùy thuộc vào việc soi kèo bóng đá truoctran 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 mẫu 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à soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 đó soi kèo bóng đá truoctran 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_
và%
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.
và.*
Trong soi kèo bóng đá truoctran biểu thức chính quy POSIX).
Ngoài soi kèo bóng đá truoctran cơ sở này được mượn từnhư
, Tương tự như
Hỗ trợ các metacharacters phù hợp với soi kèo bóng đá truoctran này được mượn từ các biểu thức thông thường POSIX:
|
biểu thị sự xen kẽ (soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran lần.
M
biểu thị sự lặp lại của mục trước đó chính xác
M
thời gian.
M
,
biểu thị sự lặp lại của mục trướcM
hoặc nhiều lần hơn.
M
,
n
biểu thị sự lặp lại của mục trước ít nhất
M
và không quán
thời gian.
ngoặc đơn()
Có thể được sử dụng để nhóm các mục thành soi kèo bóng đá truoctran mục logic duy nhất.
Biểu thức khung[...]
Chỉ định soi kèo bóng đá truoctran 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à 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 soi kèo bóng đá truoctran ký tự thoát khác có thể được chỉ định vớiEscape
.
soi kèo bóng đá truoctran 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
TheSubring
Hàm với ba tham số,Subring (
, cung cấp trích xuất soi kèo bóng đá truoctran chuỗi con phù hợp với mẫu biểu thức chính quy SQL. Như vớichuỗi
từsoi kèo bóng đá truoctran
choEscape-Character
)Tương tự như
, mẫu đượ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 soi kèo bóng đá truoctran phần của mẫu nên được trả về thành công, mẫu phải chứa hai lần xuất hiện của ký tự thoát theo sau là soi kèo bóng đá truoctran trích dẫn kép ("
). Văn bản phù hợp với phần của soi kèo bóng đá truoctran giữa các điểm đánh dấu này được trả về.
soi kèo bóng đá truoctran 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
Bảng 9,14Liệt kê các toán tử có sẵn để khớp soi kèo bóng đá truoctran bằng cách sử dụng các biểu thức chính quy POSIX.
Bảng 9,14. 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 hợp nhạy cảm | 'Thomas' ~ '.*Thomas.*' |
~* |
khớp với biểu thức chính quy, trường hợp không nhạy cảm | 'Thomas' ~*'.*Thomas.*' |
! ~ |
không khớp với biểu thức chính quy, trường hợp nhạy cảm | 'Thomas'! ~ '.*Thomas.*' |
! ~* |
không khớp với biểu thức chính quy, trường hợp không nhạy cảm | 'Thomas'! ~*'.*Vadim.*' |
POSIXBiểu thức chính quy cung cấp soi kèo bóng đá truoctran phương tiện mạnh mẽ hơn để khớp mẫu so vớinhư
vàTương tự như
Người vận hành. Nhiều công cụ Unix nhưEGREP
, SED
hoặcAWK
Sử dụng ngôn ngữ khớp soi kèo bóng đá truoctran tương tự như ngôn ngữ được mô tả ở đây.
soi kèo bóng đá truoctran biểu thức chính quy là soi kèo bóng đá truoctran chuỗi ký tự là định nghĩa viết tắt của soi kèo bóng đá truoctran tập hợp các chuỗi (ABộ thông thường). soi kèo bóng đá truoctran chuỗi được cho là phù hợp với soi kèo bóng đá truoctran biểu thức thông thường nếu nó là thành viên của tập hợp thông thường được mô tả bởi biểu thức thông thường.như
26653_26842như
không. Không giống nhưnhư
Các mẫu, biểu thức chính quy được phép khớp ở bất cứ đâu trong soi kèo bóng đá truoctran 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.
soi kèo bóng đá truoctran số ví dụ:
'ABC' ~ 'ABC'TRUE'ABC' ~ '^A'TRUE'ABC' ~ '(b | d)'TRUE'ABC' ~ '^(b | c)'Sai
ThePOSIXNgôn ngữ soi kèo bóng đá truoctran được mô tả chi tiết hơn nhiều dưới đây.
TheSubring
hàm với hai tham số,Subring (
, cung cấp trích xuất soi kèo bóng đá truoctran chuỗi con phù hợp 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ù hợp với mẫu.chuỗi
từsoi kèo bóng đá truoctran
)
soi kèo bóng đá truoctran số ví dụ:
Subring ('foobar' từ 'O.B')OOBSubring ('foobar' từ 'o (.) B')O
Theregexp_replace
Hàm cung cấp thay thế văn bản mới cho các chuỗi con phù hợp với các soi kèo bóng đá truoctran biểu thức chính quy POSIX. Nó có cú phápregexp_replace
(Nguồn
, soi kèo bóng đá truoctran
, Thay thế
[, cờ
]). TheNguồn
Chuỗi được trả về không thay đổi nếu không có khớp vớisoi kèo bóng đá truoctran
. Nếu có soi kèo bóng đá truoctran trận đấu,Nguồn
Chuỗi được trả về vớiThay thế
Chuỗi được thay thế cho chuỗi con phù hợp. TheThay thế
Chuỗi có thể chứa\
n
, trong đón
là 1 đến 9, để chỉ ra rằng phần phụ nguồn khớp vớin
\ &
Để chỉ ra rằng phần phụ phù hợp với toàn bộ soi kèo bóng đá truoctran nên được chèn. Viết\
Nếu bạn cần đặt soi kèo bóng đá truoctran dấu gạch chéo ngược theo nghĩa đen vào văn bản thay thế. Thecờ
tham số là soi kèo bóng đá truoctran 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ời
Chỉ định khớp không nhạy cảm trường hợp, trong khi cờg
Chỉ định thay thế cho mỗi chuỗi con phù hợp thay vì chỉ cái đầu tiên. Cờ được hỗ trợ (mặc dù khôngg
) được mô tả trongBảng 9.22.
soi kèo bóng đá truoctran số ví dụ:
regexp_replace ('foobarbaz', 'b ..', 'x')fooxbazregexp_replace ('foobarbaz', 'b ..', 'x', 'g')fooxxregexp_replace ('foobarbaz', 'b (..)', 'x \ 1y', 'g')fooxaryxazy
Theregexp_match
Hàm trả về soi kèo bóng đá truoctran mảng văn bản của (s) đã bị bắt từ trận đấu đầu tiên của mẫu biểu thức chính quy POSIX với soi kèo bóng đá truoctran chuỗi. Nó có cú phápregexp_match
(chuỗi
, soi kèo bóng đá truoctran
[, cờ
]). Nếu không có khớp, kết quả lànull
. Nếu soi kèo bóng đá truoctran trận đấu được tìm thấy vàsoi kèo bóng đá truoctran
Không chứa biểu hiện phụ, thì kết quả là soi kèo bóng đá truoctran mảng văn bản soi kèo bóng đá truoctran phần tử có chứa chuỗi con phù hợp với toàn bộ mẫu. Nếu soi kèo bóng đá truoctran trận đấu được tìm thấy vàsoi kèo bóng đá truoctran
Chứa biểu hiện phụ, thì kết quả là soi kèo bóng đá truoctran mảng văn bản cón
phần tử là phần phụ khớp vớin
soi kèo bóng đá truoctran
(không tínhKhăn32491_32535cờ
Tham số là soi kèo bóng đá truoctran 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. Cờ được hỗ trợ được mô tả trongBảng 9.22.
soi kèo bóng đá truoctran số ví dụ:
chọn regexp_match ('foobarbequebaz', 'bar.*Que');
Trong trường hợp phổ biến mà bạn chỉ muốn toàn bộ chuỗi con phù hợp hoặcnull
Không phù hợp, hãy viết soi kèo bóng đá truoctran cái gì đó như
Chọn (regexp_match ('foobarbequebaz', 'bar.*Que')) [1];
Theregexp_matches
33488_33652regexp_match
. Hàm này trả về không có hàng nếu không có khớp, soi kèo bóng đá truoctran hàng nếu có khớp vàg
cờ không được đưa ra hoặcn
hàng nếu cón
phù hợp vàg
Cờ được đưa ra. Mỗi hàng được trả về là soi kèo bóng đá truoctran mảng văn bản chứa toàn bộ chuỗi con phù hợp hoặc các chuỗi con phù hợp với biểu hiện của phần phụ củasoi kèo bóng đá truoctran
, giống như được mô tả ở trên choregexp_match
. regexp_matches
Chấp nhận tất cả soi kèo bóng đá truoctran cờ được hiển thị trongBảng 9.22, cộng vớig
cờ ra lệnh trả về tất cả soi kèo bóng đá truoctran trận đấu, không chỉ là lần đầu tiên.
soi kèo bóng đá truoctran số ví dụ:
chọn regexp_matches ('foo', 'không có');
Trong hầu hết soi kèo bóng đá truoctran trường hợpregexp_matches ()
nên được sử dụng vớig
cờ, vì nếu bạn chỉ muốn trận đấu đầu tiên, thì việc sử dụng dễ dàng hơn và hiệu quả hơnregexp_match ()
. Tuy nhiên,regexp_match ()
Chỉ tồn tại trongPostgreSQLPhiên bản 10 trở lên. Khi làm việc trong các phiên bản cũ hơn, soi kèo bóng đá truoctran thủ thuật phổ biến là đặt soi kèo bóng đá truoctranregexp_matches ()
Gọi trong soi kèo bóng đá truoctran lựa chọn phụ, ví dụ:
chọn col1, (chọn regexp_matches (col2, '(thanh) (beque)')) từ tab;
Điều này tạo ra soi kèo bóng đá truoctran mảng văn bản nếu có trận đấu hoặcnull
Nếu không, giống nhưregexp_match ()
sẽ làm. Nếu không chọn phụ, truy vấn này sẽ không tạo ra đầu ra nào cho soi kèo bóng đá truoctran hàng bảng không có khớp, thường không phải là hành vi mong muốn.
Theregexp_split_to_table
Hàm chia soi kèo bóng đá truoctran chuỗi bằng mẫu 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
, soi kèo bóng đá truoctran
[, cờ
]). Nếu không có khớp vớisoi kèo bóng đá truoctran
, hàm trả vềchuỗi
. Nếu có ít nhất soi kèo bóng đá truoctran 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à chuỗi văn bản tùy chọn chứa soi kèo bóng đá truoctran cờ đơn hoặc nhiều hơn để thay đổi hành vi của chức năng.regexp_split_to_table
Hỗ trợ soi kèo bóng đá truoctran cờ được mô tả trongBảng 9.22.
Theregexp_split_to_array
Hàm hoạt động giống nhưregexp_split_to_table
, ngoại trừregexp_split_to_array
Trả về kết quả của nó dưới dạng soi kèo bóng đá truoctran mảngText
. Nó có cú phápregexp_split_to_array
(chuỗi
, soi kèo bóng đá truoctran
[, cờ
]). soi kèo bóng đá truoctran tham số giống như đối vớiregexp_split_to_table
.
soi kèo bóng đá truoctran số ví dụ:
Chọn foo từ regexp_split_to_table ('con cáo 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, soi kèo bóng đá truoctran chức năng phân chia regexp bỏ qua soi kèo bóng đá truoctran 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_match
vàregexp_matches
, nhưng thường là hành vi thuận tiện nhất trong thực tế. soi kèo bóng đá truoctran hệ thống phần mềm khác như Perl sử dụng soi kèo bóng đá truoctran định nghĩa tương tự.
PostgreSQLsoi kèo bóng đá truoctran 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ề soi kèo bóng đá truoctran 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
).POSTGRESQLHỗ trợ cả hai hình thức và cũng thực hiện soi kèo bóng đá truoctran số phần mở rộng không theo tiêu chuẩn POSIX, nhưng đã được sử dụng rộng rãi do tính khả dụng của chúng trong các ngôn ngữ lập trình như Perl và Tcl.reS bằng cách sử dụng soi kèo bóng đá truoctran tiện ích mở rộng không posix này được gọi làNâng cao reS hoặclàs trong tài liệu này. Ares gần như là soi kèo bóng đá truoctran siêu âm chính xác của các ERE, nhưng Bres có soi kèo bóng đá truoctran số sự không tương thích chứng minh (cũng như bị hạn chế hơn nhiều).
PostgreSQLban đầu cho rằng soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran ứng dụng mong đợi chính xácPOSIX1003.2 Quy tắc.
soi kèo bóng đá truoctran biểu thức chính quy được định nghĩa là soi kèo bóng đá truoctran hoặc nhiềucành, tách biệt bởi|
. Nó phù hợp với bất cứ thứ gì phù hợp với soi kèo bóng đá truoctran trong các nhánh.
soi kèo bóng đá truoctran nhánh bằng không hoặc nhiều hơnĐịnh lượng nguyên tửhoặcràng buộc, được nối. Nó phù hợp với soi kèo bóng đá truoctran trận đấu cho trận đấu thứ nhất, sau đó là soi kèo bóng đá truoctran trận đấu cho trận thứ hai, v.v.;
soi kèo bóng đá truoctran nguyên tử được định lượng làAtomCó thể theo sau là soi kèo bóng đá truoctranđịnh lượng. Không có bộ định lượng, nó phù hợp với soi kèo bóng đá truoctran 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.15. soi kèo bóng đá truoctran bộ định lượng có thể và ý nghĩa của chúng được hiển thị trongBảng 9.16.
Aràng buộckhớp với soi kèo bóng đá truoctran chuỗi trống, nhưng chỉ khớp với các điều kiện cụ thể được đáp ứng. soi kèo bóng đá truoctran ràng buộc có thể được sử dụng khi có thể sử dụng soi kèo bóng đá truoctran nguyên tử, ngoại trừ nó không thể được theo sau bởi soi kèo bóng đá truoctran bộ định lượng.Bảng 9.17; soi kèo bóng đá truoctran số ràng buộc khác được mô tả sau.
Bảng 9.15. soi kèo bóng đá truoctran nguyên tử biểu hiện chính quy
Atom | Mô tả |
---|---|
( re ) |
(trong đóre 43298_43348re , 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”tập hợp 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ù hợp 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 |
WHEREC là chữ và số (có thể theo sau bởi các ký tự khác) là soi kèo bóng đá truoctranEscape, xemPhần 9.7.3.3(chỉ ares; trong eres và bres, điều này phù hợpC ) |
|
Khi được theo sau bởi soi kèo bóng đá truoctran ký tự không phải là soi kèo bóng đá truoctran chữ số, phù hợp với ký tự tay trái ; Khi được theo sau bởi soi kèo bóng đá truoctran chữ số, nó là khởi đầu của soi kèo bóng đá truoctranBound (xem bên dưới) |
x |
WHEREx là soi kèo bóng đá truoctran ký tự duy nhất không có ý nghĩa khác, khớp với ký tự đó |
soi kèo bóng đá truoctran RE không thể kết thúc bằng dấu gạch chéo ngược (\
).
Nếu bạn cóStandard_Conforming_StringsTắt, bất kỳ dấu gạch chéo ngược nào bạn viết trong soi kèo bóng đá truoctran 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.16. Định lượng biểu thức thông thường
định lượng | Matches |
---|---|
* |
Trình tự từ 0 trở lên của Atom |
+ |
soi kèo bóng đá truoctran chuỗi từ 1 hoặc nhiều hơn các kết quả của Atom |
? |
soi kèo bóng đá truoctran chuỗi các trận đấu 0 hoặc 1 của nguyên tử |
M
|
soi kèo bóng đá truoctran chuỗi chính xácM phù hợp với nguyên tử |
M , |
soi kèo bóng đá truoctran chuỗiM hoặc nhiều trận đấu của nguyên tử |
M , n
|
soi kèo bóng đá truoctran chuỗiM đếnn (Bao gồm) soi kèo bóng đá truoctran khớp của nguyên tử;M khô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 của? |
M ? |
Phiên bản không xanh của
M
|
M ,? |
Phiên bản không xanh của
M , |
M , n ? |
Phiên bản không xanh của
M , n
|
Các biểu soi kèo bóng đá truoctran sử dụng...
được gọi làgiới hạn. Số
M
vàn
Trong soi kèo bóng đá truoctran giới hạn là các 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 soi kèo bóng đá truoctran khả năng tương tự như bình thường tương ứng của chúng (Greedy) soi kèo bóng đá truoctran đố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.
49839_49906**
không hợp 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.17. soi kèo bóng đá truoctran 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Ảphù hợp với bất kỳ điểm nào phù hợp với chuỗi conre Bắt đầu (chỉ ares) |
(?! Re ) |
LOẠI ĐÁNH GIÁkhớp tại bất kỳ điểm nào không phù hợp với bộ nềnre Bắt đầu (chỉ ares) |
(? <= Re ) |
Lookbehind tích cựcphù hợp với bất kỳ điểm nào phù hợp với chuỗi conre kết thúc (chỉ ares) |
(? <! re ) |
Lookbehind tiêu cựckhớp với bất kỳ điểm nào không phù hợp với chuỗi conre kết thúc (chỉ ares) |
51888_51942Tài liệu tham khảo trở lại(xemPhần 9.7.3.3) và tất cả soi kèo bóng đá truoctran dấu ngoặc đơn trong chúng được coi là không bắt giữ.
ABiểu thức khunglà danh sách soi kèo bóng đá truoctran 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ù hợp 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ộ soi kèo bóng đá truoctran ký tự giữa hai (bao gồm) trong chuỗi đối chiếu, ví dụ:[0-9]
inASCIIphù hợp với bất kỳ chữ số thập phân nào. Đó là bất hợp pháp đối với hai phạm vi để chia sẻ soi kèo bóng đá truoctran điểm cuối, ví dụ:A-C-E
. Phạm vi rất phụ thuộc vào chuỗi, vì vậy soi kèo bóng đá truoctran chương trình di động sẽ tránh dựa vào chúng.
Để bao gồm soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran phạm vi. Sử dụng soi kèo bóng đá truoctran nghĩa đen-
Là điểm cuối đầu tiên của soi kèo bóng đá truoctran phạm vi, đặt nó trong[.
và.]
Để biến nó thành soi kèo bóng đá truoctran phần tử đối chiếu (xem bên dưới). Ngoại trừ các ký tự này, soi kèo bóng đá truoctran số kết hợp 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran lối thoát) trong Ares.
54092_54288[.
và.]
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à soi kèo bóng đá truoctran yếu tố duy nhất trong danh sách của biểu thức khung.CH
Phần tử đối chiếu, sau đó là re[[. Ch.]]*C
phù hợp với năm ký tự đầu tiên củaCHCHCC
.
POSTGRESQLHiện tại không hỗ trợ soi kèo bóng đá truoctran 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[=
và=]
làLớp tương đương, đứng cho soi kèo bóng đá truoctran chuỗi ký tự của tất cả soi kèo bóng đá truoctran yếu tố đối chiếu tương đương với phần đó, bao gồm cả chính nó. .[.
và.]
.) Ví dụ, nếuo
và^
là thành viên của soi kèo bóng đá truoctran lớp tương đương, sau đó[[= o =]]
, [[=^=]]
và[o^]
Tất cả đều đồng nghĩa. soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran lớp ký tự được đặt trong[:
và:]
là viết tắt của danh sách tất cả soi kèo bóng đá truoctran 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
, Space
, trên
, XDigit
. Những đại diện cho soi kèo bóng đá truoctran lớp ký tự được xác định trongCtype. soi kèo bóng đá truoctran địa điểm có thể cung cấp cho người khác.
Có hai trường hợp đặc biệt của biểu thức khung: biểu thức khung[[: <:]]
và[[::]]
là các ràng buộc, khớp với các chuỗi trống ở đầu và cuối của soi kèo bóng đá truoctran từ tương ứng. soi kèo bóng đá truoctran từ được định nghĩa là soi kèo bóng đá truoctran 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ừ.Alnum
57160_57188ctype) hoặc dấu gạch dưới. Đây là soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 hợp hơn;
Escapeslà soi kèo bóng đá truoctran chuỗi đặc biệt bắt đầu bằng\
theo sau là soi kèo bóng đá truoctran ký tự chữ và số. Escapes có soi kèo bóng đá truoctran 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à soi kèo bóng đá truoctran ký tự chữ và số nhưng không cấu thành soi kèo bóng đá truoctran lối thoát hợp lệ là bất hợp pháp trong Ares. Trong Eres, không có lối thoát: bên ngoài biểu thức khung, A\
58244_58377\
là soi kèo bóng đá truoctran ký tự thông thường. (Cái sau là soi kèo bóng đá truoctran điều không tương thích thực tế giữa ERE và ARES.)
Escapes ký tựtồn tại để giúp dễ dàng chỉ định soi kèo bóng đá truoctran ký tự không in và soi kèo bóng đá truoctran ký tự bất tiện khác trong Res. Chúng được hiển thị trongBảng 9,18.
Escapes-Shorthand EscapesCung cấp tốc ký cho soi kèo bóng đá truoctran lớp ký tự thường được sử dụng nhất định. Chúng được hiển thị trongBảng 9.19.
AEscape Escapelà soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran lối thoát. Chúng được hiển thị trongBảng 9.20.
ATham chiếu lại(\
n
) khớp với cùng soi kèo bóng đá truoctran chuỗi phù hợp với biểu hiện phụ được chỉ định bởi sốn
(xemBảng 9,21). Ví dụ,([BC]) \ 1
MatchesBB
hoặcCC
nhưng khôngBC
hoặ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,18. 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 ngược |
\ C x |
(trong đóx là bất kỳ ký tự nào) ký tự có 5 bit thứ tự thấp giống như củax , và có soi kèo bóng đá truoctran bit khác đều bằng không |
\ E |
ký tự có tên trình tự đối chiếu làESC hoặ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 |
\ u WXYZ |
(trong đóWXYZ chí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à0x WXYZ |
\ u stuvwxyz |
(trong đóstuvwxyz chí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à0x stuvwxyz |
\ V |
Tab dọc, như trong C |
\ x HHH |
(trong đóHHH là 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à0x HHH (soi kèo bóng đá truoctran 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 đóXY chí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à0 XY |
\ XYZ |
(trong đóXYZ chí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à0 XYZ |
soi kèo bóng đá truoctran chữ số thập lục phân là0
-9
, A
-f
vàA
-f
. Chữ số bát phân là0
-7
.
Nhập ký tự số thoát ra soi kèo bóng đá truoctran 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, soi kèo bóng đá truoctran giá trị thoát tương đương với soi kèo bóng đá truoctran điểm mã Unicode, ví dụ\ U1234
có nghĩa là ký tựU+1234
. Đối với soi kèo bóng đá truoctran mã hóa multibyte khác, thoát nhập ký tự thường chỉ xác định sự kết hợp của soi kèo bóng đá truoctran 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
là]
Trong ASCII, nhưng\ 135
Không chấm dứt biểu thức khung.
Bảng 9.19. Biểu thức thông thường của lớp biểu diễn thoát ra
Escape | Mô tả |
---|---|
\ D |
[[: Digit:]] |
\ 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
và\ W
Mất dấu ngoặc bên ngoài của họ và\ D
, \ s
và\ W
là bất hợp pháp. (Vì vậy, ví dụ,[A-C \ D]
tương đương với[A-C [: Digit:]]
. Cũng,[A-C \ D]
, tương đương với[A-C^[: Digit:]]
, là bất hợp pháp.)
Bảng 9.20. Biểu thức thông thường bị ràng buộc thoát ra
Escape | Mô tả |
---|---|
\ A |
Chỉ phù hợp ở đầu chuỗi (xemPhần 9.7.3.5Vì điều này khác với^ ) |
\ m |
Chỉ phù hợp ở đầu soi kèo bóng đá truoctran từ |
\ m |
Chỉ phù hợp ở cuối soi kèo bóng đá truoctran từ |
\ y |
Chỉ phù hợp ở đầu hoặc cuối của soi kèo bóng đá truoctran từ |
\ y |
Chỉ phù hợp tại soi kèo bóng đá truoctran điểm không phải là đầu hoặc kết thúc của soi kèo bóng đá truoctran từ |
\ Z |
Chỉ phù hợp ở cuối chuỗi (xemPhần 9.7.3.5Vì điều này khác với$ ) |
soi kèo bóng đá truoctran từ được định nghĩa là trong đặc điểm kỹ thuật của[[: <:]]
và[[::]]
ở trên. Bị ràng buộc Escapes là bất hợp pháp trong soi kèo bóng đá truoctran biểu thức khung.
Bảng 9.21. Biểu thức thông thường tài liệu tham khảo trở lại
Escape | Mô tả |
---|---|
\ M |
(trong đóM là soi kèo bóng đá truoctran chữ số khác) soi kèo bóng đá truoctran tham chiếu trở lại choM 'S Subspression |
\ MNN |
(trong đóM là soi kèo bóng đá truoctran chữ số khác vànn là soi kèo bóng đá truoctran số chữ số khác và giá trị thập phânMNN không lớn hơn số lượng dấu ngoặc đơn đóng cho đến nay)MNN |
Có soi kèo bóng đá truoctran 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. soi kèo bóng đá truoctran số không hàng đầu luôn chỉ ra soi kèo bóng đá truoctran lối thoát bát phân.
Ngoài cú pháp chính được mô tả ở trên, còn có soi kèo bóng đá truoctran số hình thức đặc biệt và các cơ sở cú pháp linh tinh có sẵn.
soi kèo bóng đá truoctran RE có thể bắt đầu bằng soi kèo bóng đá truoctran trong hai đặc biệtGiám đốcTiền tố. Nếu soi kèo bóng đá truoctran re bắt đầu bằng***:
, phần còn lại của RE được lấy làm là soi kèo bóng đá truoctran. (Đ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 soi kèo bóng đá truoctran re bắt đầu với*** =
, phần còn lại của RE được coi là soi kèo bóng đá truoctran 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: soi kèo bóng đá truoctran chuỗi(?
XYZ
)
(trong đóXYZ
là soi kèo bóng đá truoctran 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 hợp được ngụ ý bởi toán tử Regex hoặccờ
tham số cho hàm regex. soi kèo bóng đá truoctran chữ cái tùy chọn có sẵn được hiển thị trongBảng 9.22. Lưu ý rằng soi kèo bóng đá truoctran chữ cái tùy chọn tương tự được sử dụng trongcờ
tham số của soi kèo bóng đá truoctran hàm regex.
Bảng 9.22. Được nhúng-soi kèo bóng đá truoctran 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 |
Phù hợp với trường hợp (loại ghi đè loại toán tử) |
E |
Phần còn lại của re là ere |
i |
Phù hợp 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 hợp nhạy cảm với Newline (xemPhần 9.7.3.5) |
P |
Kết hợp nhạy cảm với soi kèo bóng đá truoctran phần mới (xemPhần 9.7.3.5) |
Q |
Phần còn lại của RE là soi kèo bóng đá truoctran nghĩa đen (Hồitrích dẫn) Chuỗi, tất cả soi kèo bóng đá truoctran ký tự thông thường |
S |
Kết hợp 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 soi kèo bóng đá truoctran phần mới nhạy cảm (HồiWeird”) khớp (xemPhầ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 soi kèo bóng đá truoctran (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ó soi kèo bóng đá truoctranMở rộngCú pháp, có sẵn bằng cách chỉ định nhúngx
Tùy chọn. Trong cú pháp mở rộng, soi kèo bóng đá truoctran ký tự không gian trắng trong RE bị bỏ qua, cũng như tất cả soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran re phức tạp.
soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran ký hiệu đa nhân vật, chẳng hạn như(?:
Với mục đích này, soi kèo bóng đá truoctran ký tự không gian trắng là trống, tab, newline và bất kỳ ký tự nào thuộc vềSpace
lớp ký tự.
Cuối cùng, trong soi kèo bóng đá truoctran biểu thức khung bên ngoài, trình tự(?#
TTT
)
(trong đóTTT
Có văn bản nào không chứa)
) là soi kèo bóng đá truoctran nhận xét, hoàn toàn bị bỏ qua. soi kèo bóng đá truoctran 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à soi kèo bóng đá truoctran cổ vật lịch sử hơn là soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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à soi kèo bóng đá truoctran chuỗi theo nghĩa đen chứ không phải là soi kèo bóng đá truoctran re.
Trong trường hợp RE có thể khớp nhiều hơn soi kèo bóng đá truoctran chuỗi con của soi kèo bóng đá truoctran chuỗi đã cho, RE khớp với soi kèo bóng đá truoctran chuỗi bắt đầu sớm nhất trong chuỗi. Nếu RE có thể khớp nhiều hơn soi kèo bóng đá truoctran 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àtham lamhoặcKhông Greedy.
Cho dù RE có tham lam hay không được xác định bởi soi kèo bóng đá truoctran quy tắc sau:
Hầu hết soi kèo bóng đá truoctran nguyên tử và tất cả soi kèo bóng đá truoctran 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ó.
soi kèo bóng đá truoctran nguyên tử được định lượng với bộ định lượng lặp lại cố định (M
hoặc
M
?
) có cùng sự tham lam (có thể không có) như chính nguyên tử.
soi kèo bóng đá truoctran nguyên tử được định lượng với các bộ định lượng bình thường khác (bao gồmM
,
n
với
M
bằngn
) là tham lam (thích trận đấu dài nhất).
soi kèo bóng đá truoctran 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ớiM
bằngn
) là không màu xanh lá cây (thích kết hợp ngắn nhất).
soi kèo bóng đá truoctran nhánh-nghĩa là soi kèo bóng đá truoctran 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.
soi kèo bóng đá truoctran 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.
soi kèo bóng đá truoctran quy tắc trên liên kết soi kèo bóng đá truoctran thuộc tính tham lam không chỉ với soi kèo bóng đá truoctran nguyên tử được định lượng riêng lẻ, mà với soi kèo bóng đá truoctran nhánh và toàn bộ RES có chứa soi kèo bóng đá truoctran nguyên tử được định lượng. Điều đó có nghĩa là việc kết hợp được thực hiện theo cách mà nhánh hoặc toàn bộ Re, phù hợp 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, soi kèo bóng đá truoctran phần của nó phù hợp với bất kỳ biểu hiện 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.
soi kèo bóng đá truoctran ví dụ về ý nghĩa của điều này:
Chọn Subring ('XY1234Z', 'Y*([0-9] 1,3)');Kết quả:123
chọn Subring ('XY1234Z', 'y*? ([0-9] 1,3)');Kết quả:1
Trong trường hợp đầ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ạiy
và nó phù hợp 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 hợp thứ hai, toàn bộ RE không phải là greedy vìy*?
là không màu xanh lá cây. Nó có thể khớp với bắt đầu tạiy
và nó phù hợp 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,3
là 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 soi kèo bóng đá truoctran 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ù hợp mà chúng được phépHồiĂnLiên quan đến nhau.
soi kèo bóng đá truoctran định lượng1,1
và1,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ó soi kèo bóng đá truoctran 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_match ('abc01234xyz', '(.*) (\ D+) (.*)');Kết quả:ABC0123,4, XYZ
Điều đó không hoạt động: Đầu tiên.*
là tham lam vì vậyĂn”càng nhiều càng tốt, rời khỏi\ d+
Để phù hợp ở 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_match ('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_match ('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 soi kèo bóng đá truoctran có độ dài thay đổi.
Khi quyết định các kết quả 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ử. soi kèo bóng đá truoctran chuỗi trống được coi là dài hơn không có khớp nào cả.BB*
phù hợp với ba ký tự giữa củaABBBC
;(Tuần | Wee) (đêm | Hiệp sĩ)
phù hợp với tất cả mười ký tự củaĐêm tuần
; khi(.*).*
được khớp vớiABC
biểu hiện phụ của phần phụ phù hợp với cả ba ký tự; và khi(A*)*
được khớp vớiBC
83839_83918
Nếu kết hợp độc lập trường hợp được chỉ định, hiệu ứng này giống như tất cả các trường hợp 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 hợp xuất hiện dưới dạng soi kèo bóng đá truoctran ký tự thông thường bên ngoài biểu thức khung, nó được chuyển đổi thành soi kèo bóng đá truoctran biểu thức khung có chứa cả hai trường hợp, ví dụ:x
trở thành[xx]
. Khi nó xuất hiện bên trong biểu thức khung, tất cả soi kèo bóng đá truoctran đối tác của nó được thêm vào biểu thức khung, ví dụ:[x]
trở thành[xx]
và[^x]
trở thành[^xx]
.
Nếu kết hợp nhạy cảm với newline được chỉ định,.
và biểu thức khung bằng cách sử dụng^
84732_84859^
và$
sẽ khớp với chuỗi trống sau và trước soi kèo bóng đá truoctran 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
và\ Z
Tiếp tục khớp với đầu hoặc kết thúc chuỗichỉ.
Nếu kết hợp nhạy cảm với soi kèo bóng đá truoctran phần mới được chỉ định, điều này ảnh hưởng.
và soi kèo bóng đá truoctran biểu thức khung như với sự kết hợp nhạy cảm với dòng mới, nhưng không phải^
và$
.
85484_85559^
và$
Như với kết hợp 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.
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, soi kèo bóng đá truoctran 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 trong soi kèo bóng đá truoctran biểu thức khung. Tất cả soi kèo bóng đá truoctran tính năng khác đều sử dụng cú pháp là bất hợp pháp hoặc có soi kèo bóng đá truoctran hiệu ứng không xác định hoặc không xác định trong soi kèo bóng đá truoctran ERE POSIX;***
Cú pháp của soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran số đã được thay đổi để làm sạch chúng và soi kèo bóng đá truoctran 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
86850_87176
Hai sự không tương thích đáng kể tồn tại giữa Ares và ERE Cú pháp được công nhận bởi soi kèo bóng đá truoctran bản phát hành trước 7.4POSTGRESQL:
Trong Ares,\
Tiếp theo là ký tự chữ và số là soi kèo bóng đá truoctran lối thoát hoặc lỗi, trong khi trong các bản phát hành trước đó, đó chỉ là soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran chuỗi như vậy trong các bản phát hành trước đó.
Trong Ares,\
vẫn là soi kèo bóng đá truoctran ký tự đặc biệt trong[]
, vì vậy soi kèo bóng đá truoctran nghĩa đen\
Trong soi kèo bóng đá truoctran biểu thức khung phải được viết\
.
Bres khác với các ERE ở soi kèo bóng đá truoctran số khía cạnh. Trong bres,|
, +
và?
là soi kèo bóng đá truoctran ký tự thông thường và không có tương đương với chức năng của chúng. soi kèo bóng đá truoctran dấu phân cách cho giới hạn là\
và\
, vớivà
Bản thân soi kèo bóng đá truoctran ký tự thông thường. Dấu ngoặc đơn cho biểu hiện phụ lồng nhau là
\ (
và\)
, với(
và)
Bản thân soi kèo bóng đá truoctran ký tự thông thường.^
là soi kèo bóng đá truoctran ký tự thông thường ngoại trừ ở đầu RE hoặc bắt đầu biểu hiện phụ,$
*
là soi kèo bóng đá truoctran ký tự thông thường nếu nó xuất hiện ở đầu RE hoặc bắt đầu biểu hiện phụ của dấu ngoặc^
). Cuối cùng, các tài liệu tham khảo trở lại soi kèo bóng đá truoctran chữ số có sẵn và\ <
và\
là từ đồng nghĩa với[[: <:]]
và[[::]]
tương ứng; Không có lối thoát nào khác có sẵn trong bres.