Phù hợp với thẻ tín dụng lớn bao gồm. Visa [dài 16, tiền tố 4], Mastercard [dài 16, tiền tố 51-55], Discover [dài 16, tiền tố 6011], American Express [dài 15, tiền tố 34 hoặc 37]. Tất cả các định dạng 16 chữ số đều chấp nhận dấu gạch nối tùy chọn [-] giữa mỗi nhóm bốn chữ số
Trang này cung cấp một cheat sheet tổng thể về tất cả các khả năng của cú pháp RegExp
bằng cách tổng hợp nội dung của các bài viết trong hướng dẫn RegExp
. Nếu bạn cần thêm thông tin về một chủ đề cụ thể, vui lòng theo liên kết trên tiêu đề tương ứng để truy cập toàn bộ bài viết hoặc đi đến phần hướng dẫn
lớp nhân vật
Các lớp ký tự phân biệt các loại ký tự, chẳng hạn như phân biệt giữa các chữ cái và chữ số
Nhân vậtÝ nghĩa[xyz]
[a-c]
Một lớp nhân vật. Khớp với bất kỳ một trong các ký tự kèm theo. Bạn có thể chỉ định một phạm vi ký tự bằng cách sử dụng dấu gạch nối, nhưng nếu dấu gạch nối xuất hiện dưới dạng ký tự đầu tiên hoặc ký tự cuối cùng nằm trong dấu ngoặc vuông, thì nó được coi là dấu gạch nối theo nghĩa đen để được đưa vào lớp ký tự như một ký tự bình thường
Ví dụ, [abcd]
giống như [a-d]
. Chúng khớp với "b" trong "brisket" và "a" hoặc "c" trong "arch", nhưng không khớp với "-" [dấu gạch nối] trong "phi lợi nhuận"
Ví dụ: [abcd-]
và [-abcd]
khớp với "b" trong "brisket", "a" hoặc "c" trong "arch" và "-" [dấu gạch nối] trong "non-profit"
Ví dụ, [\w-]
giống như [A-Za-z0-9_-]
. Cả hai đều khớp với bất kỳ ký tự nào trong "no_reply@example-server. com" ngoại trừ "@" và ". "
RegExp
0
Một lớp ký tự phủ định hoặc bổ sung. Nghĩa là, nó khớp với bất kỳ thứ gì không được đặt trong ngoặc. Bạn có thể chỉ định một phạm vi ký tự bằng cách sử dụng dấu gạch nối, nhưng nếu dấu gạch nối xuất hiện dưới dạng ký tự đầu tiên hoặc ký tự cuối cùng nằm trong dấu ngoặc vuông, thì nó được coi là dấu gạch nối theo nghĩa đen để được đưa vào lớp ký tự như một ký tự bình thường. Ví dụ: RegExp
1 giống như RegExp
2. Ban đầu chúng khớp với "o" trong "bacon" và "h" trong "chop"
Ghi chú. Ký tự ^ cũng có thể cho biết phần đầu của đầu vào
RegExp
3Có một trong những ý nghĩa sau
- Khớp với bất kỳ ký tự đơn nào ngoại trừ các ký tự kết thúc dòng.
RegExp
4,RegExp
5,RegExp
6 hoặcRegExp
7. Ví dụ:RegExp
8 khớp với "my" và "ay", nhưng không khớp với "yes", trong "yes make my day" - Bên trong một lớp ký tự, dấu chấm mất đi ý nghĩa đặc biệt của nó và khớp với dấu chấm theo nghĩa đen
Lưu ý rằng cờ nhiều dòng RegExp
9 không thay đổi hành vi dấu chấm. Vì vậy, để khớp một mẫu trên nhiều dòng, lớp ký tự RegExp
0 có thể được sử dụng — nó sẽ khớp với bất kỳ ký tự nào kể cả các dòng mới
Cờ "dotAll" của RegExp
1 cho phép dấu chấm cũng khớp với các dấu kết thúc dòng
RegExp
2Khớp với bất kỳ chữ số nào [chữ số Ả Rập]. Tương đương với RegExp
3. Ví dụ: RegExp
4 hoặc RegExp
5 khớp với "2" trong "B2 là số dãy phòng"
RegExp
6Khớp với bất kỳ ký tự nào không phải là chữ số [chữ số Ả Rập]. Tương đương với RegExp
7. Ví dụ: RegExp
8 hoặc RegExp
9 khớp với "B" trong "B2 là số dãy phòng"
[xyz]
[a-c]
0Khớp với bất kỳ ký tự chữ và số nào từ bảng chữ cái Latinh cơ bản, bao gồm cả dấu gạch dưới. Tương đương với [xyz]
1. Ví dụ:
[a-c][xyz]
2 khớp với "a" trong "apple", "5" trong "$5. 28" và "3" trong "3D"
[a-c]
[xyz]
[a-c]
3Khớp với bất kỳ ký tự nào không phải là ký tự từ trong bảng chữ cái Latinh cơ bản. Tương đương với [xyz]
4. Ví dụ:
[a-c][xyz]
5 hoặc
[a-c][xyz]
6 khớp với "%" trong "50%"
[a-c]
[xyz]
[a-c]
7So khớp với một ký tự khoảng trắng, bao gồm dấu cách, tab, nguồn cấp biểu mẫu, nguồn cấp dòng và các khoảng trắng Unicode khác. Tương đương với [xyz]
8. Ví dụ:
[a-c][xyz]
9 khớp với " bar" trong "foo bar"
[a-c]
[abcd]
0Khớp với một ký tự không phải là khoảng trắng. Tương đương với [abcd]
1. Ví dụ: [abcd]
2 khớp với "foo" trong "foo bar"
[abcd]
3Khớp với tab ngang. RegExp
5Khớp với trả lại vận chuyển. RegExp
4Khớp với nguồn cấp dữ liệu. [abcd]
6Khớp với tab dọc. [abcd]
7Khớp với nguồn cấp dữ liệu biểu mẫu. [abcd]
8Khớp với khoảng lùi. Nếu bạn đang tìm ký tự ranh giới từ [[abcd]
9], hãy xem Ranh giới. [a-d]
0Khớp với một ký tự NUL. Đừng làm theo điều này với một chữ số khác. [a-d]
1So khớp một ký tự điều khiển bằng cách sử dụng ký hiệu dấu mũ, trong đó "X" là một chữ cái từ A–Z [tương ứng với các điểm mã [a-d]
2–[a-d]
3]. Ví dụ: [a-d]
4 khớp với "\r" trong "\r\n"
[a-d]
5Khớp ký tự với mã [a-d]
6 [hai chữ số thập lục phân]. [a-d]
7Khớp đơn vị mã UTF-16 với giá trị [a-d]
8 [bốn chữ số thập lục phân]. [a-d]
9[Chỉ khi cờ [abcd-]
0 được đặt. ] So khớp với ký tự có giá trị Unicode [abcd-]
1 hoặc [abcd-]
2 [chữ số thập lục phân]. [abcd-]
3Cho biết ký tự sau cần được xử lý đặc biệt hoặc "thoát". Nó hành xử theo một trong hai cách
- Đối với các ký tự thường được hiểu theo nghĩa đen, biểu thị rằng ký tự tiếp theo là đặc biệt và không được hiểu theo nghĩa đen. Ví dụ:
[abcd-]
4 khớp với ký tự "b". Bằng cách đặt dấu gạch chéo ngược trước "b", nghĩa là bằng cách sử dụng[abcd-]
5, ký tự trở nên đặc biệt để có nghĩa phù hợp với ranh giới từ - Đối với các ký tự thường được xử lý đặc biệt, biểu thị rằng ký tự tiếp theo không đặc biệt và nên được hiểu theo nghĩa đen. Ví dụ: "*" là một ký tự đặc biệt có nghĩa là phải khớp với 0 hoặc nhiều lần xuất hiện của ký tự trước đó; . Để khớp với
[abcd-]
7 theo nghĩa đen, hãy đặt trước nó một dấu gạch chéo ngược;
Lưu ý rằng một số ký tự như [abcd-]
9, [-abcd]
0, [-abcd]
1, v.v. không có ý nghĩa đặc biệt khi thoát hoặc khi không thoát. Các chuỗi thoát như [-abcd]
2, [-abcd]
3, [-abcd]
4 sẽ tương đương với các ký tự tương đương theo nghĩa đen, không thoát của chúng trong các biểu thức chính quy. Tuy nhiên, trong các biểu thức chính quy có cờ unicode, chúng sẽ gây ra lỗi thoát danh tính không hợp lệ. Điều này được thực hiện để đảm bảo khả năng tương thích ngược với mã hiện có sử dụng các chuỗi thoát mới như [-abcd]
5 hoặc [-abcd]
6
Ghi chú. Để khớp với ký tự này theo nghĩa đen, hãy thoát ký tự đó bằng chính nó. Nói cách khác, để tìm kiếm [abcd-]
3, hãy sử dụng [-abcd]
8
[-abcd]
9Phân ly. Khớp với "x" hoặc "y". Mỗi thành phần, được ngăn cách bởi một đường ống [______80], được gọi là một thay thế. Ví dụ: [\w-]
1 khớp với "green" trong "green apple" và "red" trong "red apple"
Ghi chú. Sự phân tách là một cách khác để chỉ định "một tập hợp các lựa chọn", nhưng nó không phải là một lớp ký tự. Sự tách biệt không phải là nguyên tử — bạn cần sử dụng một nhóm để biến nó thành một phần của mẫu lớn hơn. [\w-]
2 có chức năng tương đương với [\w-]
3
khẳng định
Các xác nhận bao gồm các ranh giới, cho biết phần đầu và phần cuối của dòng và từ cũng như các mẫu khác cho biết theo một cách nào đó rằng có thể khớp [bao gồm biểu thức nhìn về phía trước, nhìn về phía sau và biểu thức điều kiện]
Xác nhận loại ranh giới
Nhân vậtÝ nghĩa[\w-]
4
Khớp với phần đầu của đầu vào. Nếu cờ nhiều dòng được đặt thành đúng, thì cũng khớp ngay sau ký tự ngắt dòng. Ví dụ: [\w-]
5 không khớp với chữ "A" trong "an A", nhưng khớp với chữ "A" đầu tiên trong "An A"
Ghi chú. Ký tự này có ý nghĩa khác khi nó xuất hiện ở đầu một lớp ký tự
[\w-]
6Khớp với phần cuối của đầu vào. Nếu cờ nhiều dòng được đặt thành đúng, thì cũng khớp ngay trước ký tự ngắt dòng. Ví dụ: ________ 87 không khớp với chữ "t" trong "water", nhưng lại khớp với nó trong "eat"
[abcd]
9Phù hợp với một ranh giới từ. Đây là vị trí mà một ký tự từ không được theo sau hoặc đi trước bởi một ký tự từ khác, chẳng hạn như giữa một chữ cái và khoảng trắng. Lưu ý rằng ranh giới từ phù hợp không được bao gồm trong từ phù hợp. Nói cách khác, độ dài của ranh giới từ phù hợp bằng không
ví dụ
[\w-]
9 khớp với "m" trong "moon"[A-Za-z0-9_-]
0 không khớp với "oo" trong "moon", bởi vì "oo" được theo sau bởi "n" là một ký tự từ[A-Za-z0-9_-]
1 khớp với "oon" trong "moon", vì "oon" là phần cuối của chuỗi, do đó không có ký tự từ theo sau[A-Za-z0-9_-]
2 sẽ không bao giờ khớp với bất kỳ thứ gì, bởi vì một ký tự từ không bao giờ có thể được theo sau bởi cả ký tự không phải từ và ký tự từ
Để khớp với một ký tự xóa lùi [_______48], hãy xem Lớp ký tự
[A-Za-z0-9_-]
4Khớp với ranh giới không phải từ. Đây là vị trí mà ký tự trước và sau cùng loại. Cả hai phải là từ hoặc cả hai phải không phải là từ, ví dụ: giữa hai chữ cái hoặc giữa hai khoảng trắng. Phần đầu và phần cuối của một chuỗi được coi là không phải từ. Tương tự như ranh giới từ được khớp, ranh giới không phải từ được khớp cũng không được bao gồm trong kết quả khớp. Ví dụ: [A-Za-z0-9_-]
5 khớp với "on" trong "at trưa" và [A-Za-z0-9_-]
6 khớp với "ye" trong "có thể là ngày hôm qua"
khẳng định khác
Ghi chú. Ký tự [A-Za-z0-9_-]
7 cũng có thể được sử dụng làm định lượng
[A-Za-z0-9_-]
8Xác nhận nhìn trước. Chỉ khớp với "x" nếu "x" được theo sau bởi "y". Ví dụ: /[A-Za-z0-9_-]
9 chỉ khớp với "Jack" nếu nó được theo sau bởi "Sprat".
______100 khớp với "Jack" chỉ khi theo sau nó là "Sprat" hoặc "Frost". Tuy nhiên, cả "Sprat" và "Frost" đều không phải là một phần của kết quả trận đấu.
RegExp
01Khẳng định nhìn trước tiêu cực. Chỉ khớp với "x" nếu "x" không được theo sau bởi "y". Ví dụ: RegExp
02 chỉ khớp với một số nếu nó không được theo sau bởi dấu thập phân. RegExp
03 khớp với "141" chứ không phải "3"
RegExp
04khẳng định nhìn phía sau. Chỉ khớp với "x" nếu "x" đứng trước "y". Ví dụ: RegExp
05 chỉ khớp với "Sprat" nếu nó đứng trước "Jack". RegExp
06 chỉ khớp với "Sprat" nếu nó đứng trước "Jack" hoặc "Tom". Tuy nhiên, cả "Jack" và "Tom" đều không phải là một phần của kết quả trận đấu
RegExp
07Khẳng định nhìn phía sau tiêu cực. Chỉ khớp với "x" nếu "x" không đứng trước "y". Ví dụ: RegExp
08 chỉ khớp với một số nếu nó không có dấu trừ phía trước. RegExp
09 phù hợp với "3". Không tìm thấy kết quả khớp RegExp
10 vì số này đứng trước dấu trừ
Nhóm và phản hồi
Các nhóm và phản hồi chỉ ra các nhóm ký tự biểu thức
Nhân vậtÝ nghĩaRegExp
11chụp nhóm. So khớp RegExp
12 và ghi nhớ trận đấu. Ví dụ: RegExp
13 khớp và nhớ "foo" trong "foo bar"
Một biểu thức chính quy có thể có nhiều nhóm chụp. Trong kết quả, khớp với các nhóm chụp thường trong một mảng có các thành viên theo cùng thứ tự với dấu ngoặc đơn bên trái trong nhóm chụp. Đây thường chỉ là thứ tự của các nhóm bắt giữ. Điều này trở nên quan trọng khi các nhóm chụp được lồng vào nhau. Các kết quả phù hợp được truy cập bằng cách sử dụng chỉ mục của các phần tử của kết quả [RegExp
14] hoặc từ các thuộc tính của đối tượng RegExp
được xác định trước [RegExp
16]
Chụp nhóm có một hình phạt hiệu suất. Nếu bạn không cần gọi lại chuỗi con phù hợp, hãy ưu tiên sử dụng dấu ngoặc đơn không bắt giữ [xem bên dưới]
RegExp
17 sẽ không trả về nhóm nếu cờ RegExp
18 được đặt. Tuy nhiên, bạn vẫn có thể sử dụng RegExp
19 để lấy tất cả các trận đấu
RegExp
20Nhóm chụp được đặt tên. Khớp "x" và lưu trữ nó trên thuộc tính nhóm của các kết quả khớp được trả về dưới tên được chỉ định bởi RegExp
21. Dấu ngoặc nhọn [RegExp
22 và RegExp
23] là bắt buộc đối với tên nhóm
Ví dụ: để trích xuất mã vùng của Hoa Kỳ từ một số điện thoại, chúng tôi có thể sử dụng RegExp
24. Số kết quả sẽ xuất hiện dưới RegExp
25
RegExp
26Nhóm không bắt giữ. Khớp "x" nhưng không nhớ khớp. Không thể gọi lại chuỗi con phù hợp từ các phần tử của mảng kết quả [RegExp
14] hoặc từ các thuộc tính của đối tượng RegExp
được xác định trước [RegExp
16]. RegExp
30Trong đó "n" là một số nguyên dương. Tham chiếu ngược đến chuỗi con cuối cùng khớp với dấu ngoặc đơn n trong biểu thức chính quy [tính cả dấu ngoặc đơn bên trái]. Ví dụ: RegExp
31 khớp với "táo, cam," trong "táo, cam, anh đào, đào"
Tham chiếu ngược đến chuỗi con cuối cùng khớp với nhóm chụp được đặt tên được chỉ định bởi RegExp
21
Ví dụ: RegExp
33 khớp với "Sir, yes Sir" trong "Do you copy? Sir, yes Sir. "
Ghi chú. [-abcd]
6 được sử dụng theo nghĩa đen ở đây để biểu thị phần đầu của tham chiếu ngược đến nhóm chụp được đặt tên
định lượng
Bộ định lượng cho biết số lượng ký tự hoặc biểu thức cần khớp
Ghi chú. Trong phần sau, mục không chỉ đề cập đến các ký tự đơn lẻ mà còn bao gồm các lớp ký tự, thoát thuộc tính Unicode, nhóm và tham chiếu ngược
Nhân vậtÝ nghĩaRegExp
35Khớp với mục trước "x" 0 hoặc nhiều lần. Ví dụ: RegExp
36 khớp với "boooo" trong "A ghost booooed" và "b" trong "A bird warbled", nhưng không khớp với "A con dê càu nhàu"
RegExp
37Khớp với mục trước "x" 1 hoặc nhiều lần. Tương đương với RegExp
38. Ví dụ: RegExp
39 khớp với chữ "a" trong "candy" và tất cả chữ "a" trong "caaaaaaaandy"
RegExp
40Khớp với mục trước "x" 0 hoặc 1 lần. Ví dụ: RegExp
41 khớp với "el" trong "angel" và "le" trong "angle. "
Nếu được sử dụng ngay sau bất kỳ bộ định lượng nào [abcd-]
7, RegExp
43, [A-Za-z0-9_-]
7 hoặc RegExp
45, làm cho bộ định lượng không tham lam [khớp với số lần tối thiểu], trái ngược với giá trị mặc định là tham lam [khớp với số lần tối đa]
RegExp
46Trong đó "n" là một số nguyên dương, khớp chính xác với "n" lần xuất hiện của mục trước "x". Ví dụ: RegExp
47 không khớp với chữ "a" trong "candy", nhưng nó khớp với tất cả chữ "a" trong "caandy" và hai chữ "a" đầu tiên trong "caaandy"
RegExp
48Trong đó "n" là một số nguyên dương, khớp với ít nhất "n" lần xuất hiện của mục trước "x". Ví dụ: RegExp
49 không khớp với chữ "a" trong "candy", nhưng khớp với tất cả chữ a trong "caandy" và trong "caaaaaaandy"
RegExp
50Trong đó "n" là 0 hoặc một số nguyên dương, "m" là một số nguyên dương và RegExp
51, khớp với ít nhất "n" và nhiều nhất "m" lần xuất hiện của mục trước "x". Ví dụ: RegExp
52 không khớp với "cndy", chữ "a" trong "candy", hai chữ "a" trong "caandy" và ba chữ "a" đầu tiên trong "caaaaaaaandy". Lưu ý rằng khi khớp "caaaaaaaandy", kết quả khớp là "aaa", mặc dù chuỗi ban đầu có nhiều chữ "a" hơn trong đó
RegExp
53RegExp
54RegExp
55RegExp
56RegExp
57RegExp
58
By default quantifiers like [abcd-]
7 and RegExp
43 are "greedy", meaning that they try to match as much of the string as possible. The [A-Za-z0-9_-]
7 character after the quantifier makes the quantifier "non-greedy": meaning that it will stop as soon as it finds a match. For example, given a string like "some new thing":
RegExp
62 will match " new "RegExp
63 will match ""
Thuộc tính Unicode thoát
Thoát thuộc tính Unicode cho phép khớp các ký tự dựa trên thuộc tính Unicode của chúng
// Non-binary values
/\p{UnicodePropertyValue}/
/\p{UnicodePropertyName=UnicodePropertyValue}/
// Binary and non-binary values
/\p{UnicodeBinaryPropertyName}/
// Negation: \P is negated \p
/\P{UnicodePropertyValue}/
/\P{UnicodeBinaryPropertyName}/
RegExp
64Tên của thuộc tính nhị phân. e. g. RegExp
65, RegExp
66, RegExp
67, RegExp
68, RegExp
69, RegExp
70, RegExp
67, RegExp
72, v.v. Xem Danh sách dữ liệu Unicode. txt để biết thêm thông tin
RegExp
73Tên của một thuộc tính không nhị phân
- Chung_Thể loại [
RegExp
74] - Kịch bản [______175]
- Script_Extensions [
RegExp
76]
Xem thêm PropertyValueAliases. txt
RegExp
77Một trong những mã thông báo được liệt kê trong phần Giá trị, bên dưới. Nhiều giá trị có bí danh hoặc tốc ký [e. g. giá trị RegExp
78 cho thuộc tính RegExp
79 có thể được viết là RegExp
80, RegExp
81 hoặc RegExp
78]. Đối với hầu hết các giá trị, phần RegExp
73 và dấu bằng có thể được bỏ qua. Nếu một RegExp
73 được chỉ định, giá trị phải tương ứng với loại thuộc tính đã cho
Ghi chú. Vì có nhiều thuộc tính và giá trị có sẵn, chúng tôi sẽ không mô tả chúng một cách thấu đáo ở đây mà sẽ cung cấp các ví dụ khác nhau