Bảng tham khảo cú pháp biểu thức chính quy

Biểu thức chính quy, còn gọi là biểu thức quy tắc, là một mẫu văn bản, thường được sử dụng để tìm kiếm, thay thế và kiểm soát văn bản. Chủ yếu bao gồm các chữ cái từ a đến z và một số ký tự đặc biệt. Ứng dụng của biểu thức chính quy rất rộng rãi, ban đầu được phổ biến bởi Unix, sau đó được sử dụng rộng rãi trong Scala, PHP, C#, Java, C++, Objective-c, Perl, Swift, VBScript, Javascript, Ruby và Python. Học biểu thức chính quy thực chất là học một dạng tư duy logic vô cùng linh hoạt, liên kết thông qua phương pháp đơn giản, nhanh chóng để đạt được kiểm soát chuỗi.
Ký tự chính quy Mô tả
\ Đánh dấu ký tự tiếp theo là một ký tự đặc biệt, hoặc một ký tự nguyên nghĩa, hoặc một tham chiếu lùi, hoặc một ký tự thoát thập phân. Ví dụ, “n" khớp với ký tự "n". "\n" khớp với một ký tự xuống dòng. Chuỗi "\\" khớp với "\" trong khi "\(" khớp với "(".
^ Khớp với vị trí bắt đầu của chuỗi đầu vào. Nếu thuộc tính Multiline của đối tượng RegExp được thiết lập, ^ cũng khớp với vị trí sau “\n" hoặc "\r" trong chuỗi.
$ Khớp với vị trí kết thúc của chuỗi đầu vào. Nếu thuộc tính Multiline của đối tượng RegExp được thiết lập, $ cũng khớp với vị trí trước “\n" hoặc "\r".
* Khớp với biểu thức con phía trước từ 0 đến nhiều lần. Ví dụ, zo* có thể khớp với “z" và "zoo". * tương đương với {0,}.
+ Khớp với biểu thức con phía trước ít nhất một hoặc nhiều lần. Ví dụ, “zo+" có thể khớp với "zo" và "zoo", nhưng không thể khớp với "z". + tương đương với {1,}.
? Khớp với biểu thức con phía trước 0 hoặc 1 lần. Ví dụ, “do(es)?" có thể khớp với "does" hoặc "do" trong "does". ? tương đương với {0,1}.
{n} n là một số nguyên không âm. Khớp với n lần cụ thể. Ví dụ, “o{2}" không thể khớp với "o" trong "Bob", nhưng có thể khớp với hai o trong "food".
{n,} n là một số nguyên không âm. Ít nhất khớp với n lần. Ví dụ, “o{2,}" không thể khớp với "o" trong "Bob", nhưng có thể khớp với tất cả o trong "foooood". "o{1,}" tương đương với "o+". "o{0,}" tương đương với "o*".
{n,m} mn đều là số nguyên không âm, trong đó n<=m. Ít nhất khớp với n lần và nhiều nhất khớp với m lần. Ví dụ, “o{1,3}" sẽ khớp với ba o trong "fooooood". "o{0,1}" tương đương với "o?". Chú ý không được có khoảng trắng giữa dấu phẩy và hai số.
? Khi ký tự này ngay sau bất kỳ ký tự hạn chế nào khác (*, +, ?, {n}, {n,}, {n,m}) tiếp theo, chế độ khớp là không tham lam. Chế độ không tham lam khớp ít nhất có thể các ký tự được tìm kiếm, trong khi chế độ tham lam mặc định khớp nhiều nhất có thể các ký tự được tìm kiếm. Ví dụ, với chuỗi “oooo“, “o+?” sẽ khớp với một "o", trong khi “o+” sẽ khớp với tất cả "o".
. Khớp với bất kỳ ký tự đơn lẻ nào ngoại trừ “\n”. Để khớp với bất kỳ ký tự nào bao gồm cả “\n”, hãy sử dụng mẫu như “(.|\n)”.
(pattern) Khớp với mẫu và lấy kết quả khớp này. Kết quả khớp có thể được lấy từ tập hợp Matches được tạo ra, vào trong VBScript sử dụng tập hợp SubMatches, trong JScript sử dụng thuộc tính $0…$9. Để khớp với ký tự dấu ngoặc đơn, hãy sử dụng “\(" hoặc “\)”.
(?:pattern) Khớp với mẫu nhưng không lấy kết quả khớp, tức là đây là một mẫu không lấy kết quả, không được lưu lại để sử dụng sau. Điều này rất hữu ích khi sử dụng ký tự hoặc “(|)” để tổ hợp các phần của một mẫu. Ví dụ "industr(?:y|ies)" là một biểu thức ngắn gọn hơn "industry|industries".
(?=pattern) Khớp với xác nhận trước tiến vào đầu của bất kỳ chuỗi nào khớp với mẫu. Đây là một mẫu không lấy kết quả, có nghĩa là khớp này không cần lấy các kết quả để sử dụng sau. Ví dụ, “Windows(?=95|98|NT|2000)" có thể khớp với "Windows" trong "Windows2000", nhưng không thể khớp với "Windows" trong "Windows3.1". Xác nhận trước không tiêu tốn ký tự, tức là sau khi một khớp diễn ra, tìm kiếm lần khớp tiếp theo bắt đầu ngay sau lần khớp cuối cùng, chứ không phải bắt đầu từ ký tự sau khớp trước đó.
(?!pattern) Xác nhận phủ định trước tiến vào đầu của bất kỳ chuỗi nào không khớp với mẫu. Đây là một mẫu không lấy kết quả, có nghĩa là khớp này không cần lấy các kết quả để sử dụng sau. Ví dụ “Windows(?!95|98|NT|2000)" có thể khớp với "Windows" trong "Windows3.1", nhưng không thể khớp với "Windows" trong "Windows2000". Xác nhận trước không tiêu tốn ký tự, tức là sau khi một khớp diễn ra, tìm kiếm lần khớp tiếp theo bắt đầu ngay sau lần khớp cuối cùng, chứ không phải bắt đầu từ ký tự sau khớp trước đó.
(?<=pattern) Xác nhận trước lùi, giống như xác nhận trước tiến nhưng ngược chiều. Ví dụ, “(?<=95|98|NT|2000)Windows" có thể khớp với "Windows" trong "2000Windows", nhưng không thể khớp với "3.1Windows" trong "Windows".
(?<!pattern) Xác nhận phủ định trước lùi, tương tự xác nhận phủ định trước tiến nhưng ngược chiều. Ví dụ “(?<!95|98|NT|2000)Windows" có thể khớp với "Windows" trong "3.1Windows", nhưng không thể khớp với "Windows" trong "2000Windows".
x|y Khớp với x hoặc y. Ví dụ, “z|food" có thể khớp với "z" hoặc "food". "(z|f)ood" khớp với "zood" hoặc "food".
[xyz] Tập hợp ký tự. Khớp với bất kỳ ký tự nào trong tập hợp. Ví dụ, “[abc]” có thể khớp với “a" trong "plain".
[^xyz] Tập hợp ký tự phủ định. Khớp với bất kỳ ký tự nào không nằm trong tập hợp. Ví dụ, “[^abc]" có thể khớp với “p" trong "plain".
[a-z] Phạm vi ký tự. Khớp với bất kỳ ký tự nào trong phạm vi được chỉ định. Ví dụ, “[a-z]” có thể khớp với bất kỳ ký tự chữ cái tiếng thường từ "a" đến "z".
[^a-z] Tập hợp ký tự phủ định trong phạm vi. Khớp với bất kỳ ký tự nào không nằm trong phạm vi được chỉ định. Ví dụ, “[^a-z]" có thể khớp với bất kỳ ký tự nào không nằm trong "a" đến "z".
\b Khớp với biên giới của một từ, tức là vị trí giữa một từ và khoảng trắng. Ví dụ, “er\b" có thể khớp với "er" trong "never", nhưng không thể khớp với "er" trong "verb".
\B Khớp với vị trí không phải biên giới từ. “er\B" khớp với "er" trong "verb", nhưng không thể khớp với "er" trong "never".
\cx Khớp với một ký tự điều khiển được chỉ định bởi x. Ví dụ, \cM khớp với một điều khiển-M hoặc ký tự quay lại. Giá trị của x phải là một trong các ký tự A-Z hoặc a-z. Nếu không, c sẽ được xem như là một ký tự nguyên nghĩa “c".
\d Khớp với một ký tự số. Tương đương với [0-9].
\D Khớp với một ký tự không phải số. Tương đương với [^0-9].
\f Khớp với một ký tự xuống trang. Tương đương với \x0c và \cL.
\n Khớp với một ký tự xuống dòng. Tương đương với \x0a và \cJ.
\r Khớp với một ký tự quay lại. Tương đương với \x0d và \cM.
\s Khớp với bất kỳ ký tự khoảng trắng nào, bao gồm khoảng trắng, tab, ký tự xuống trang, v.v. Tương đương với [ \f\n\r\t\v].
\S Khớp với bất kỳ ký tự không phải khoảng trắng nào. Tương đương với [^ \f\n\r\t\v].
\t Khớp với một tab. Tương đương với \x09 và \cI.
\v Khớp với một ký tự tab dọc. Tương đương với \x0b và \cK.
\w Khớp với bất kỳ ký tự từ nào bao gồm dấu gạch dưới. Tương đương với “[A-Za-z0-9_]".
\W Khớp với bất kỳ ký tự không phải từ nào. Tương đương với “[^A-Za-z0-9_]".
\xn Khớp với n, trong đó n là giá trị thoát thập phân. Giá trị thập phân phải có độ dài định danh hai chữ số. Ví dụ, “\x41" khớp với "A". "\x041" tương đương với "\x04&1". Trong biểu thức chính quy, có thể sử dụng mã ASCII.
\num Khớp với num, trong đó num là một số nguyên dương. Để tham chiếu tới khớp đã lấy được. Ví dụ, “(.)\1" khớp với hai ký tự giống hệt nhau liên tiếp.
\n Đánh dấu một giá trị thoát thập phân hoặc một tham chiếu lùi. Nếu có ít nhất n biểu thức con được lấy trước n, thì n sẽ là tham chiếu lùi. Nếu không, nếu n là chữ số thập phân (0-7), thì n sẽ là giá trị thoát thập phân.
\nm Đánh dấu một giá trị thoát thập phân hoặc một tham chiếu lùi. Nếu có ít nhất nm biểu thức con được lấy trước đó, thì nm sẽ là tham chiếu lùi. Nếu có ít nhất n được lấy trước đó, thì n sẽ là một tham chiếu lùi theo sau bởi một chữ cái m. Nếu không, nếu nm đều là chữ số thập phân (0-7), thì nm sẽ khớp với giá trị thoát thập phân nm.
\nml Nếu n là số thập phân (0-3), và ml đều là số thập phân (0-7), thì khớp với giá trị thoát thập phân nml.
\un Khớp với n, trong đó n là một ký tự Unicode được biểu diễn bằng bốn chữ số thập phân. Ví dụ, \u00A9 khớp với ký hiệu bản quyền (©).
Biểu thức chính quy thường dùng
Tên người dùng /^[a-z0-9_-]{3,16}$/
Mật khẩu /^[a-z0-9_-]{6,18}$/
Mật khẩu 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (bao gồm các chữ số / chữ hoa / chữ thường / ký hiệu, bốn loại đều phải có, trên 8 ký tự)
Giá trị hex /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
Địa chỉ email /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ hoặc \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ hoặc [a-zA-z]+://[^\s]*
Địa chỉ IP /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ hoặc ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
Thẻ HTML /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ hoặc <(.*)(.*)>.*<\/\1>|<(.*) \/>
Xóa mã \\ Bình luận (?<!http:|\S)//.*$
Khớp với ký tự hai byte (bao gồm cả ký tự Trung Quốc) [^\x00-\xff]
Ký tự Trung Quốc (chữ) [\u4e00-\u9fa5]
Phạm vi ký tự Trung Quốc trong mã Unicode /^[\u2E80-\u9FFF]+$/
Ký tự Trung Quốc và dấu câu toàn phần (chữ) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Ngày (năm-tháng-ngày) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Ngày (tháng/ngày/năm) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Thời gian (giờ:phút, định dạng 24 giờ) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Số điện thoại cố định Trung Quốc (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Số điện thoại di động Trung Quốc 1\d{10}
Mã bưu điện Trung Quốc [1-9]\d{5}
Số chứng minh nhân dân Trung Quốc (15 hoặc 18 chữ số) \d{15}(\d\d[0-9xX])?
Số nguyên không âm (số dương hoặc 0) \d+
Số nguyên dương [0-9]*[1-9][0-9]*
Số nguyên âm -[0-9]*[1-9][0-9]*
Số nguyên -?\d+
Số thập phân (-?\d+)(\.\d+)?
Dòng trống \n\s*\r Hoặc \n\n(editplus) Hoặc ^[\s\S ]*\n
Số QQ [1-9]\d{4,}
Từ không chứa abc \b((?!abc)\w)+\b
Khớp với ký tự khoảng trắng ở đầu và cuối ^\s*|\s*$
Biên tập thường dùng
Dưới đây là một số thay đổi đối với một số ký tự tiếng Trung đặc biệt (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

Bảng tra cứu ngữ pháp biểu thức chính quy - Kỹ thuật và ngữ pháp biểu thức chính quy thường dùng

Biểu thức chính quy là một công cụ xử lý văn bản mạnh mẽ, trang này cung cấp cho bạnBảng tra cứu ngữ pháp biểu thức chính quy thường dùng, giúp bạn nhanh chóng hiểu biết về ngữ pháp cơ bản, dấu hiệu, biểu thức con, chế độ tham lam và không tham lam của biểu thức chính quy.

Ngữ pháp cơ bản của biểu thức chính quy

Biểu thức chính quy được sử dụng để mô tả quy tắc của mẫu chuỗi, các ngữ pháp cơ bản thường gặp bao gồm:

Các dấu hiệu của biểu thức chính quy thường dùng

Các dấu hiệu của biểu thức chính quy được sử dụng để thay đổi quy tắc khớp của biểu thức chính quy, các dấu hiệu thường gặp bao gồm:

Chế độ tham lam và không tham lam

Trong biểu thức chính quy, các định nghĩa số lượng mặc định là tham lam, nó sẽ khớp với nhiều ký tự nhất có thể. Chế độ không tham lam được sử dụng bằng cách thêm ? sau dấu định lượng, ví dụ:

Biểu thức con và nhóm

Biểu thức con trong biểu thức chính quy được định nghĩa bằng dấu ngoặc (( )), thường được sử dụng để trích xuất một phần khớp. Nhóm được thực hiện bằng cách sử dụng ký hiệu “|”. Ví dụ:

Tìm kiếm nhanh biểu thức chính quy

Dưới đây là tìm kiếm nhanh về các biểu thức chính quy thường dùng:

Chức năng Biểu thức chính quy
Khớp với số \d
Khớp với ký tự không phải số \D
Khớp với ký tự chữ cái [a-zA-Z]
Khớp với bất kỳ ký tự nào .
Khớp với ký tự khoảng trắng \s

Ứng dụng của biểu thức chính quy

Biểu thức chính quy được áp dụng rộng rãi trong các trường hợp sau:

Mẹo học biểu thức chính quy

Hãy sử dụngBảng tra cứu ngữ pháp biểu thức chính quy của chúng tôi ngay bây giờ, giúp bạn hiệu quả hơn trong việc viết biểu thức chính quy và nâng cao khả năng xử lý văn bản!

Dấu chân của bạn:
Chọn ngôn ngữ