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
\ d | Hầu hết các động cơ: một chữ số từ 0 đến 9 from 0 to 9 | FILE_ \ D \ D | FILE_25 |
\ d | Hầu hết các động cơ: một chữ số từ 0 đến 9 | FILE_ \ D \ D | FILE_25 |
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào | FILE_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 |
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào | FILE_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 |
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào | FILE_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 \ 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 | 字-ま ‿۳ | \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ọ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 \ d | ABC | \ W |
[đương dân trực tiêp]
Nhân vật
\ d | Hầu hết các động cơ: một chữ số từ 0 đến 9 | FILE_ \ D \ D | FILE_25 |
{3} | .NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào | FILE_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 \ sc | một bc | 156 |
{3,} | .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 \ d | ABC | \ W | Mộ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 | *-+=] | \S | Mộ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
\ d | Hầu hết các động cơ: một chữ số từ 0 đến 9 | FILE_ \ D \ D | FILE_25 |
\ d | Hầu hết các động cơ: một chữ số từ 0 đến 9 | FILE_ \ D \ D | FILE_25 |
.NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào. | FILE_9੩ | \ w | FILE_ \ D \ D |
FILE_25 | .NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào | FILE_9੩ | \ w |
FILE_25 | .NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào | FILE_9੩ | \ w |
[đương dân trực tiêp]
Nhân vật
\ d | Hầu hết các động cơ: một chữ số từ 0 đến 9 | 22|33 | 33 |
FILE_ \ D \ D | FILE_25 | .NET, Python 3: Một chữ số Unicode trong bất kỳ tập lệnh nào | FILE_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 \ 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 | 字-ま _۳ | .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ọc | A [?: NT | PPLE] | Quả táo |
[đương dân trực tiêp]
Nhiều không gian trắng hơn
\ t | Chuyển hướng | T \ t \ w {2} | T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab |
\ r | Nhân vật trở lại vận chuyển | xem bên dưới | |
\N | Ký tự nguồn cấp dữ liệu | xem bên dưới | |
\N | Ký tự nguồn cấp dữ liệu | \ r \ n | Dòng phân tách trên Windows CD |
Ab \ r \ ncd | A B C D | \N | Perl, 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
\ t | Chuyển hướng | T \ t \ w {2} | 12345 |
T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab | \ r | Nhân vật trở lại vận chuyển | xem bên dưới12345 |
\N | Ký tự nguồn cấp dữ liệu | \ r \ n | Dòng phân tách trên Windows |
T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab | \ r | Nhân vật trở lại vận chuyển | xem bên dưới |
{2,4} | \N | Ký tự nguồn cấp dữ liệu | \ r \ n |
T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab | \ r | Nhân vật trở lại vận chuyển | xem bên dướiabcd |
[đương dân trực tiêp]
\N
\ t | Chuyển hướng | T \ t \ w {2} | T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab |
\ t | Chuyển hướng | T \ t \ w {2} | T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab |
\ r | Nhân vật trở lại vận chuyển | xem bên dưới | \N |
[x-y] | Ký tự nguồn cấp dữ liệu | \ r \ n | Dòng phân tách trên Windows |
\ t | Chuyển hướng | T \ t \ w {2} | T & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ab |
[x-y] | Ký tự nguồn cấp dữ liệu | \ r \ n | Dòng phân tách trên Windows |
[^x] | Ab \ r \ ncd | A 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 | \ H | Mộ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ọ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
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]
[:alpha:] | Một chữ cái viết thường | Mộ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].[?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ới | 123 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 Undet | Xác định các sửa đổi ISMNXismnx modifiers |
[đương dân trực tiêp]
Lookarounds
[? =…] | 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ực | mèo trong 1cat | [?! |
[đương dân trực tiêp]
Lookarounds
[? =…] | 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ực | mèo trong 1cat | [?! |
[? | Lookbehind tích cực | mè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 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ực | mèo trong 1cat |
[?!