Hướng dẫn regex cheat sheet with examples - bảng gian lận regex với các ví dụ


Khởi động nhanh: Bảng gian lận Regex


Các bảng dưới đây là một tham chiếu đến regex cơ bản. Trong khi đọc phần còn lại của trang web, khi nghi ngờ, bạn luôn có thể quay lại và nhìn vào đây. [Bạn muốn một dấu trang, đây là một liên kết trực tiếp đến các bảng tham chiếu Regex]. Tôi khuyến khích bạn in các bảng để bạn có một bảng cheat trên bàn để tham khảo nhanh.

Các bảng không đầy đủ, vì hai lý do. Đầu tiên, mọi hương vị Regex đều khác nhau và tôi không muốn đám đông trang với cú pháp quá kỳ lạ. Để tham khảo đầy đủ về các hương vị Regex cụ thể mà bạn sẽ sử dụng, tốt nhất bạn nên đi thẳng vào nguồn. Trên thực tế, đối với một số động cơ Regex [như Perl, PCRE, Java và .NET], bạn có thể muốn kiểm tra mỗi năm một lần, vì người tạo của họ thường giới thiệu các tính năng mới.

Một lý do khác khiến các bảng không đầy đủ là tôi muốn chúng phục vụ như một giới thiệu nhanh về Regex. Nếu bạn là người mới bắt đầu hoàn chỉnh, bạn nên nắm bắt cú pháp regex cơ bản chỉ bằng cách đọc các ví dụ trong các bảng. Tôi đã cố gắng giới thiệu các tính năng theo thứ tự hợp lý và để tránh những điều kỳ lạ mà tôi chưa từng thấy khi sử dụng thực tế, chẳng hạn như "ký tự chuông". Với các bảng này như một bảng nhảy, bạn sẽ có thể tiến lên thành thạo bằng cách khám phá các trang khác trên trang web.

Cách sử dụng các bảng

Các bảng có nghĩa là để phục vụ như một khóa học Regex tăng tốc, và chúng có nghĩa là được đọc chậm, một dòng tại một thời điểm. Trên mỗi dòng, trong cột ngoài cùng bên trái, bạn sẽ tìm thấy một phần tử mới của cú pháp Regex. Cột tiếp theo, "Legend", giải thích ý nghĩa của phần tử [hoặc mã hóa] trong cú pháp Regex. Hai cột tiếp theo hoạt động trong tay: cột "Ví dụ" đưa ra biểu thức chính quy hợp lệ sử dụng phần tử và cột "Trận đấu mẫu" trình bày một chuỗi văn bản có thể phù hợp với biểu thức thông thường.

Tất nhiên, bạn có thể đọc các bảng trực tuyến, nhưng nếu bạn bị trường hợp nhẹ nhất trực tuyến [rối loạn thiếu chú ý], giống như hầu hết chúng ta, sau đó, tôi khuyên bạn nên in chúng ra. Bạn sẽ có thể nghiên cứu chúng từ từ và sử dụng chúng như một bảng gian lận sau đó, khi bạn đang đọc phần còn lại của trang web hoặc thử nghiệm các biểu thức thông thường của riêng bạn.

Vui thích!

Nếu bạn dùng quá liều, hãy đảm bảo không bỏ lỡ trang tiếp theo, trở lại Trái đất và nói về một số thứ thực sự tuyệt vời: 1001 cách để sử dụng Regex.The 1001 ways to use Regex.

Khóa học tăng tốc REGEX và bảng gian lận

Để dễ dàng điều hướng, đây là một số điểm nhảy đến các phần khác nhau của trang:

Các ký tự ✽ Định lượng ✽ Nhiều ký tự ✽ logic ✽ Không gian trắng Thêm các bộ định lượng hơn ✽ Các lớp ký tự ✽ Neo và ranh giới Các lớp POSIX ✽ Các sửa đổi nội tuyến
✽ Quantifiers
✽ More Characters
✽ Logic
✽ More White-Space
✽ More Quantifiers
✽ Character Classes
✽ Anchors and Boundaries
✽ POSIX Classes
✽ Inline Modifiers
✽ Lookarounds
✽ Character Class Operations
✽ Other Syntax

[đương dân trực tiêp]

Nhân vật

Tính cáchTruyền thuyếtThí dụMẫu phù hợp
\ d Hầu hết các động cơ: một chữ số từ 0 đến 9
from 0 to 9
FILE_ \ D \ DFILE_25
\ d Hầu hết các động cơ: một chữ số từ 0 đến 9FILE_ \ D \ DFILE_25
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào FILE_9੩\ wHầu hết các động cơ: "ký tự từ": chữ ASCII, chữ số hoặc dấu gạch dưới
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào FILE_9੩\ wHầu hết các động cơ: "ký tự từ": chữ ASCII, chữ số hoặc dấu gạch dưới
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào FILE_9੩\ wHầu hết các động cơ: "ký tự từ": chữ ASCII, chữ số hoặc dấu gạch dưới
\ w- \ w \ w \ w A-B_1.Python 3: "ký tự từ": chữ Unicode, chữ tượng hình, chữ số hoặc dấu gạch dưới字-ま _۳
c
\ w- \ w \ w \ w A-B_1.Python 3: "ký tự từ": chữ Unicode, chữ tượng hình, chữ số hoặc dấu gạch dưới字-ま _۳
c
.NET: "ký tự từ": chữ Unicode, chữ tượng hình, chữ số hoặc trình kết nối 字-ま ‿۳\SHầu hết các động cơ: "ký tự khoảng trắng": không gian, tab, newline, return vận chuyển, tab dọc
a \ sb \ sc một bc.NET, Python 3, JavaScript: "ký tự khoảng trắng": bất kỳ bộ phân cách Unicode nào\ D
Một ký tự không phải là một chữ số như được định nghĩa bởi động cơ của bạn \ D \ d \ dABC\ W

[đương dân trực tiêp]

Nhân vật

Tính cáchTruyền thuyếtThí dụMẫu phù hợp
\ d Hầu hết các động cơ: một chữ số từ 0 đến 9FILE_ \ D \ DFILE_25
{3} .NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nàoFILE_9੩Hầu hết các động cơ: "ký tự khoảng trắng": không gian, tab, newline, return vận chuyển, tab dọc
{2,4} a \ sb \ scmột bc156
{3,} .NET, Python 3, JavaScript: "ký tự khoảng trắng": bất kỳ bộ phân cách Unicode nào\ DMột ký tự không phải là một chữ số như được định nghĩa bởi động cơ của bạn
\ D \ d \ d ABC\ WMột ký tự không phải là ký tự từ như được định nghĩa bởi động cơ của bạn \ w
\ W \ w \ w \ w \ w *-+=]\SMột nhân vật không phải là ký tự khoảng trắng như được định nghĩa bởi động cơ của bạn

[đương dân trực tiêp]

Nhân vật

Tính cáchTruyền thuyếtThí dụMẫu phù hợp
\ d Hầu hết các động cơ: một chữ số từ 0 đến 9FILE_ \ D \ DFILE_25
\ d Hầu hết các động cơ: một chữ số từ 0 đến 9FILE_ \ D \ DFILE_25
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào. FILE_9੩\ wFILE_ \ D \ D
FILE_25 .NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nàoFILE_9੩\ w
FILE_25 .NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nàoFILE_9੩\ w

[đương dân trực tiêp]

Nhân vật

Nhân vậtTruyền thuyếtThí dụMẫu phù hợp
\ d Hầu hết các động cơ: một chữ số từ 0 đến 922|33 33
FILE_ \ D \ D FILE_25.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nàoFILE_9੩
\ w Hầu hết các động cơ: "ký tự từ": chữ ASCII, chữ số hoặc dấu gạch dưới\ w- \ w \ w \ wA-B_1
.Python 3: "ký tự từ": chữ Unicode, chữ tượng hình, chữ số hoặc dấu gạch dưới 字-ま _۳.NET: "ký tự từ": chữ Unicode, chữ tượng hình, chữ số hoặc trình kết nối字-ま ‿۳
\S Hầu hết các động cơ: "ký tự khoảng trắng": không gian, tab, newline, return vận chuyển, tab dọcA [?: NT | PPLE]Quả táo

[đương dân trực tiêp]

Nhiều không gian trắng hơn

Tính cáchTruyền thuyếtThí dụMẫu phù hợp
\ t Chuyển hướngT \ t \ w {2}T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab
\ r Nhân vật trở lại vận chuyểnxem bên dưới
\N Ký tự nguồn cấp dữ liệuxem bên dưới
\N Ký tự nguồn cấp dữ liệu\ r \ nDòng phân tách trên Windows
CD
Ab \ r \ ncd A B C D\NPerl, pcre [c, php, r…]: một ký tự không phải là một dòng phá vỡ dòng
\ N+ ABC
\ h Perl, PCRE [C, PHP, R,], Java: Một ký tự khoảng trắng ngang
\ H Một nhân vật không phải là khoảng trắng ngang
\ H Một nhân vật không phải là khoảng trắng ngang
\ v .NET, JavaScript, Python, Ruby: Tab dọc
Perl, PCRE [C, PHP, R Tiết], Java: Một ký tự khoảng trắng dọc: Nguồn cấp dữ liệu, trở lại vận chuyển, tab dọc, thức ăn mẫu, đoạn văn hoặc phân tách dòng \ V

[đương dân trực tiêp]

Perl, PCRE [C, PHP, R,], Java: Bất kỳ ký tự nào không phải là khoảng trắng dọc

\ RTruyền thuyếtThí dụMẫu phù hợp
\ t Chuyển hướngT \ t \ w {2}12345
T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab \ rNhân vật trở lại vận chuyểnxem bên dưới12345
\N Ký tự nguồn cấp dữ liệu\ r \ nDòng phân tách trên Windows
T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab \ rNhân vật trở lại vận chuyểnxem bên dưới
{2,4} \NKý tự nguồn cấp dữ liệu\ r \ n
T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab \ rNhân vật trở lại vận chuyểnxem bên dướiabcd

[đương dân trực tiêp]

\N

Tính cáchTruyền thuyếtThí dụMẫu phù hợp
\ t Chuyển hướngT \ t \ w {2}T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab
\ t Chuyển hướngT \ t \ w {2}T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab
\ r Nhân vật trở lại vận chuyểnxem bên dưới\N
[x-y] Ký tự nguồn cấp dữ liệu\ r \ nDòng phân tách trên Windows
\ t Chuyển hướngT \ t \ w {2}T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab
[x-y] Ký tự nguồn cấp dữ liệu\ r \ nDòng phân tách trên Windows
[^x] Ab \ r \ ncdA B C D\N
[^x-y] Perl, pcre [c, php, r…]: một ký tự không phải là một dòng phá vỡ dòngnot in the range from x to y \ N+ABCnot in the printable section of the ASCII table.
\ h Perl, PCRE [C, PHP, R,], Java: Một ký tự khoảng trắng ngang\ HMột nhân vật không phải là khoảng trắng ngang
luding new lines, which the regular dot doesn't match
\ v .NET, JavaScript, Python, Ruby: Tab dọcPerl, PCRE [C, PHP, R Tiết], Java: Một ký tự khoảng trắng dọc: Nguồn cấp dữ liệu, trở lại vận chuyển, tab dọc, thức ăn mẫu, đoạn văn hoặc phân tách dòng\ V

[đương dân trực tiêp]

Perl, PCRE [C, PHP, R,], Java: Bất kỳ ký tự nào không phải là khoảng trắng dọc

\ RTruyền thuyếtThí dụMẫu phù hợp
Perl, PCRE [C, PHP, R,], Java: One Line Break [Vận chuyển trở lại + Cặp nguồn cấp dữ liệu và tất cả các ký tự được khớp bởi \ V] Nhiều bộ định lượng hơnĐịnh lượng+
+ [Một hoặc nhiều] là "tham lam" \ d+?Làm cho các bộ lượng định lượng "lười biếng"
\ d+? 1 trong 12345
[all major engines except JS]
** [Không hoặc nhiều hơn] là "tham lam"
...start]
MỘT* Aaa
Not available in Python and JS
MỘT*?trống rỗng trong AAAthe end
Hai đến bốn lần, "tham lam" \ w {2,4}
Not available in JS
A B C D\ w {2,4}?the end\n
AB trong ABCD Các lớp nhân vật
.NET, Java, PCRE [C, PHP, R…], Perl, Ruby
[…] Một trong những ký tự trong ngoặc
Most engines: position where one side only is an ASCII letter, digit or underscore
[Aeiou]Một nguyên âm viết hoa
[…] Một trong những ký tự trong ngoặc
.NET, Java, Python 3, Ruby: position where one side only is a Unicode letter, digit or underscore
[Aeiou]Một nguyên âm viết hoa
T [ao] p Nhấn hoặc Top-Chỉ báo phạm vi

[đương dân trực tiêp]

[A-Z]

Tính cáchTruyền thuyếtThí dụMẫu phù hợp
[:alpha:] Một chữ cái viết thườngMột trong những ký tự trong phạm vi từ x đến y[A-Z]+
[:alpha:] TUYỆT[AB1-5W-Z]Một trong hai: A, B, 1,2,3,4,5, W, X, Y, Z
[:alnum:] [-~]+Ký tự trong phần có thể in của bảng ASCII.Một nhân vật không phải là x
[:alnum:] [^A-Z] {3}Ký tự trong phần có thể in của bảng ASCII.Một nhân vật không phải là x
[:punct:] [^A-Z] {3}A1!Một trong những ký tự không thuộc phạm vi từ x đến y
[:punct:] [^-~]+A1!Một trong những ký tự không thuộc phạm vi từ x đến y

[đương dân trực tiêp]

[^-~]+

Các ký tự không nằm trong phần có thể in của bảng ASCII.[?s] and [?m].
[\ D \ D]Truyền thuyếtThí dụMẫu phù hợp
[?i] Một nhân vật là một chữ số hoặc một chữ số
[except JavaScript]
[\ d \ d]+Bất kỳ ký tự nào, các dòng mới có thể sử dụng, điều mà dấu chấm thông thường không khớp
[?s] [\ x41]Khớp với ký tự ở vị trí thập lục phân 41 trong bảng ASCII, tức là A[\ x41- \ x45] {3}
to Z
[?m] Abe
[except Ruby and JS] ^ and $ match at the beginning and end of every line
Neo và ranh giới123
2
3
[?m] Mỏ neo^[\ x41- \ x45] {3}
to Z
[?x] Abe
[except JavaScript]. Also known as comment mode or whitespace mode
Neo và ranh giới
# comment
abc # write on multiple
# lines
[ ]d # spaces must be
# in brackets
Mỏ neo
[?n] ^Biến tất cả [dấu ngoặc đơn] thành các nhóm không bắt giữ. Để nắm bắt, sử dụng các nhóm được đặt tên.
[?d] Java: UNIX LINEBREAKS CHỈDOT và các mỏ neo ^ và $ chỉ bị ảnh hưởng bởi \ n
[?^] PCRE 10.32+: Bộ điều chỉnh UndetXác định các sửa đổi ISMNXismnx modifiers

[đương dân trực tiêp]

Lookarounds

Nhìn xung quanhTruyền thuyếtThí dụMẫu phù hợp
[? =…] Nhìn tích cực[? = \ d {10}] \ d {5}01234 trong 01234567890123456789
[? Lookbehind tích cực[?Lookbehind tích cựccat
mèo trong 1cat [?!Nhìn tiêu cực[?! Nhà hát] \ W+
[? Lookbehind tích cựcmèo trong 1cat[?!

[đương dân trực tiêp]

Lookarounds

Nhìn xung quanhTruyền thuyếtThí dụMẫu phù hợp
[? =…] Nhìn tích cực[? = \ d {10}] \ d {5}01234 trong 0123456789
[? =…] Nhìn tích cực[? = \ d {10}] \ d {5}01234 trong 0123456789
[? Lookbehind tích cựcmèo trong 1cat[?!
[? Lookbehind tích cựcmèo trong 1cat[?!
Nhìn tiêu cực [?! Nhà hát] \ W+Chủ đềLookbehind tiêu cực
Nhìn tiêu cực [?! Nhà hát] \ W+Chủ đềLookbehind tiêu cực

[đương dân trực tiêp]

Lookarounds

Nhìn xung quanhTruyền thuyếtThí dụMẫu phù hợp
[? =…] Nhìn tích cực
Perl, PCRE [C, PHP, R…], Python's alternate regex engine, Ruby 2+: drop everything that was matched so far from the overall match to be returned
[? = \ d {10}] \ d {5}12
01234 trong 0123456789 [?Lookbehind tích cựcmèo trong 1cat

[?!

Ví dụ Regex là gì?

1.2 Ví dụ: Số [0-9]+ hoặc \ D+ A regex [biểu thức chính quy] bao gồm một chuỗi các biểu thức phụ. Trong ví dụ này, [0-9] và +. [...], được gọi là lớp ký tự [hoặc danh sách khung], bao quanh danh sách các ký tự. Nó phù hợp với bất kỳ ký tự duy nhất trong danh sách.Numbers [0-9]+ or \d+ A regex [regular expression] consists of a sequence of sub-expressions. In this example, [0-9] and + . The [...] , known as character class [or bracket list], encloses a list of characters. It matches any SINGLE character in the list.

*$ Có nghĩa là gì trong regex?

*$ có nghĩa là - khớp, từ đầu đến cuối, bất kỳ ký tự nào xuất hiện bằng không hoặc nhiều lần. Về cơ bản, điều đó có nghĩa là - khớp với mọi thứ từ đầu đến cuối chuỗi.match, from beginning to end, any character that appears zero or more times. Basically, that means - match everything from start to end of the string.

Làm thế nào để bạn khớp một chuỗi trong regex?

Một biểu thức chính quy [Abbr. Regex] là một mẫu các ký tự được sử dụng để phù hợp với các kết hợp khác nhau của các chuỗi hoặc ký tự ...
\ w - khớp với bất kỳ ký tự nào ..
A {3} - khớp ba ký tự A liên tiếp ..
@gmail \ .com - khớp với một chuỗi theo nghĩa đen "@gmail.com", trong khi thoát khỏi.với một nhà điều hành \ ..

Làm thế nào để bạn chỉ định trong regex?

Bạn có thể chỉ định một loạt các 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 cuối cùng được đặt trong dấu ngoặc vuông, nó được lấy dưới dạng 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ụ, [^abc] giống như [^a-c]., but if the hyphen appears as the first or last character enclosed in the square brackets, it is taken as a literal hyphen to be included in the character class as a normal character. For example, [^abc] is the same as [^a-c] .

Bài Viết Liên Quan

Chủ Đề