Kiểm tra biểu thức chính quy với việc làm nổi bật kết quả khớp theo thời gian thực, xác thực mẫu và giải thích các ký hiệu regex phổ biến. Lưu và tái sử dụng các mẫu thường dùng của bạn với nhãn tùy chỉnh.
Nhập một mẫu và văn bản kiểm tra để xem kết quả
Nhập một mẫu và văn bản kiểm tra để xem kết quả
Chưa có mẫu nào được lưu
.
Khớp với bất kỳ ký tự nào ngoại trừ dấu xuống dòng\d
Khớp với bất kỳ chữ số nào (0-9)\D
Khớp với bất kỳ ký tự không phải chữ số nào\w
Khớp với bất kỳ ký tự từ nào (a-z, A-Z, 0-9, _)\W
Khớp với bất kỳ ký tự không phải từ nào\s
Khớp với bất kỳ ký tự khoảng trắng nào\S
Khớp với bất kỳ ký tự không phải khoảng trắng nào^
Khớp với đầu dòng$
Khớp với cuối dòng*
Khớp với 0 hoặc nhiều ký tự trước đó+
Khớp với 1 hoặc nhiều ký tự trước đó?
Khớp với 0 hoặc 1 ký tự trước đó{n}
Khớp với đúng n ký tự trước đó{n,}
Khớp với ít nhất n ký tự trước đó{n,m}
Khớp với từ n đến m ký tự trước đó[abc]
Khớp với bất kỳ một trong các ký tự trong dấu ngoặc[^abc]
Khớp với bất kỳ ký tự nào không có trong dấu ngoặc(abc)
Nhóm nhiều token lại với nhau và lưu lại kết quả khớpa|b
Khớp với a hoặc b\b
Khớp với vị trí ranh giới từTrình kiểm tra mẫu Biểu thức chính quy (regex) là một công cụ thiết yếu cho các nhà phát triển, nhà phân tích dữ liệu và bất kỳ ai làm việc với xử lý văn bản. Trình xác thực mẫu regex toàn diện này cho phép bạn tạo, kiểm tra và tinh chỉnh các biểu thức chính quy trong thời gian thực, cung cấp phản hồi trực quan ngay lập tức về các khớp mẫu. Dù bạn đang xác thực địa chỉ email, phân tích tệp nhật ký hay trích xuất dữ liệu cụ thể từ văn bản, trình kiểm tra regex của chúng tôi giúp quy trình phát triển và gỡ lỗi trở nên nhanh chóng và trực quan hơn.
Các biểu thức chính quy là các chuỗi mẫu mạnh mẽ cho phép tìm kiếm, xác thực và thao tác văn bản tinh vi. Tuy nhiên, cú pháp của chúng có thể phức tạp và khó nắm bắt. Trình kiểm tra mẫu regex này đơn giản hóa quy trình bằng cách làm nổi bật các khớp khi bạn gõ, xác thực cú pháp mẫu và cho phép bạn lưu các mẫu thường dùng để tham khảo trong tương lai.
Sử dụng trình xác thực mẫu regex của chúng tôi rất đơn giản và trực quan. Làm theo các bước sau để bắt đầu:
Nhập một mẫu Biểu thức Chính quy: Gõ mẫu regex của bạn vào trường nhập liệu dành riêng. Công cụ sẽ xác thực mẫu của bạn trong thời gian thực, thông báo cho bạn về bất kỳ lỗi cú pháp nào.
Chọn Cờ Regex: Chọn các cờ phù hợp cho mẫu của bạn:
g
(Toàn cục): Tìm tất cả các khớp thay vì dừng lại sau khớp đầu tiêni
(Không phân biệt chữ hoa chữ thường): Làm cho mẫu không phân biệt chữ hoa chữ thườngm
(Đa dòng): Làm cho ^
và $
khớp với đầu/cuối của mỗi dòngNhập Văn bản Kiểm tra: Nhập văn bản bạn muốn kiểm tra với mẫu của bạn vào khu vực văn bản kiểm tra.
Xem Kết quả trong Thời gian Thực: Khi bạn gõ, công cụ tự động:
Lưu Các Mẫu Hữu ích: Đối với các mẫu bạn thường sử dụng:
Sao chép Kết quả: Sử dụng nút "Sao chép Khớp" để sao chép tất cả văn bản khớp vào clipboard của bạn để sử dụng trong các ứng dụng khác.
Giao diện được chia thành hai bảng chính: bảng nhập liệu nơi bạn nhập mẫu và văn bản kiểm tra, và bảng kết quả hiển thị các khớp và thông tin mẫu.
Các biểu thức chính quy sử dụng các ký tự và chuỗi đặc biệt để xác định các mẫu tìm kiếm. Dưới đây là hướng dẫn về các ký hiệu regex cơ bản được công cụ của chúng tôi hỗ trợ:
Ký hiệu | Mô tả | Ví dụ | Khớp |
---|---|---|---|
. | Khớp với bất kỳ ký tự nào ngoại trừ ký tự xuống dòng | a.c | "abc", "adc", "a1c", v.v. |
\d | Khớp với bất kỳ chữ số nào (0-9) | \d{3} | "123", "456", "789", v.v. |
\D | Khớp với bất kỳ ký tự không phải chữ số nào | \D+ | "abc", "xyz", v.v. |
\w | Khớp với bất kỳ ký tự từ (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123", v.v. |
\W | Khớp với bất kỳ ký tự không phải từ nào | \W+ | "!@#", " + ", v.v. |
\s | Khớp với bất kỳ ký tự trắng nào | a\sb | "a b", "a\tb", v.v. |
\S | Khớp với bất kỳ ký tự không trắng nào | \S+ | "abc", "123", v.v. |
Ký hiệu | Mô tả | Ví dụ | Khớp |
---|---|---|---|
^ | Khớp với đầu dòng | ^abc | "abc" ở đầu dòng |
$ | Khớp với cuối dòng | abc$ | "abc" ở cuối dòng |
\b | Khớp với ranh giới từ | \bword\b | "word" như một từ hoàn chỉnh |
Ký hiệu | Mô tả | Ví dụ | Khớp |
---|---|---|---|
* | Khớp với 0 hoặc nhiều ký tự trước đó | a*b | "b", "ab", "aab", v.v. |
+ | Khớp với 1 hoặc nhiều ký tự trước đó | a+b | "ab", "aab", "aaab", v.v. |
? | Khớp với 0 hoặc 1 ký tự trước đó | colou?r | "color", "colour" |
{n} | Khớp với chính xác n ký tự trước đó | a{3} | "aaa" |
{n,} | Khớp với ít nhất n ký tự trước đó | a{2,} | "aa", "aaa", "aaaa", v.v. |
{n,m} | Khớp với từ n đến m ký tự trước đó | a{2,4} | "aa", "aaa", "aaaa" |
Ký hiệu | Mô tả | Ví dụ | Khớp |
---|---|---|---|
[abc] | Khớp với bất kỳ một trong các ký tự trong dấu ngoặc | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Khớp với bất kỳ ký tự nào không nằm trong dấu ngoặc | [^aeiou] | Bất kỳ ký tự nào ngoại trừ "a", "e", "i", "o", "u" |
[a-z] | Khớp với bất kỳ ký tự nào trong khoảng | [a-z] | Bất kỳ chữ cái viết thường nào |
Ký hiệu | Mô tả | Ví dụ | Khớp |
---|---|---|---|
(abc) | Nhóm nhiều ký tự lại với nhau và lưu lại khớp | (abc)+ | "abc", "abcabc", v.v. |
a|b | Khớp với a hoặc b | cat|dog | "cat", "dog" |
Khi bạn đã thành thạo các cơ bản, bạn có thể tạo ra các mẫu tinh vi hơn để giải quyết các thách thức xử lý văn bản phức tạp:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
Mẫu này xác thực địa chỉ email bằng cách đảm bảo chúng tuân theo định dạng tiêu chuẩn: tên người dùng@miền.tld.
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
Mẫu này xác thực URL, bao gồm cả những URL có hoặc không có giao thức http/https.
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
Mẫu này khớp với số điện thoại Mỹ ở nhiều định dạng khác nhau: (123) 456-7890, 123-456-7890, hoặc 1234567890.
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
Mẫu này xác thực ngày theo định dạng YYYY-MM-DD, với xác thực cơ bản cho các khoảng tháng và ngày.
Các phép toán nhìn trước và nhìn sau cho phép bạn khớp các mẫu chỉ khi chúng được theo sau hoặc đứng trước một mẫu khác:
a(?=b)
khớp với "a" chỉ khi nó được theo sau bởi "b"a(?!b)
khớp với "a" chỉ khi nó không được theo sau bởi "b"(?<=a)b
khớp với "b" chỉ khi nó được đứng trước bởi "a"(?<!a)b
khớp với "b" chỉ khi nó không được đứng trước bởi "a"Trình kiểm tra regex của chúng tôi hỗ trợ nhiều cờ khác nhau điều chỉnh cách các mẫu được khớp:
^
và $
khớp với đầu/cuối của mỗi dòngCác biểu thức chính quy có nhiều ứng dụng thực tiễn trong các lĩnh vực khác nhau:
Xác thực Biểu mẫu: Đảm bảo các đầu vào của người dùng khớp với các định dạng yêu cầu:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Phân tích HTML: Trích xuất các phần tử hoặc thuộc tính cụ thể:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
Phân tích Tệp Nhật ký: Trích xuất thông tin từ các mục nhật ký:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
ERROR: .*
Phân tích CSV: Xử lý các giá trị phân tách bằng dấu phẩy với các trường có thể được trích dẫn:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
Tìm và Thay thế: Xác định các mẫu để thay thế:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
Trích xuất Nội dung: Kéo thông tin cụ thể từ văn bản không cấu trúc:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
Đánh dấu Cú pháp: Xác định các cấu trúc ngôn ngữ:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
Tái cấu trúc Mã: Tìm các mẫu cần cập nhật:
\.oldMethod\(
eval\(
Trình kiểm tra mẫu regex của chúng tôi bao gồm một hệ thống quản lý mẫu cho phép bạn lưu và sử dụng lại các biểu thức thường dùng của mình:
Hãy xem xét việc lưu các mẫu mà:
Khi lưu các mẫu, hãy sử dụng các nhãn mô tả mà:
Tổ chức các mẫu đã lưu của bạn theo:
Mặc dù công cụ của chúng tôi không hỗ trợ chia sẻ mẫu giữa người dùng, bạn có thể:
Ngay cả những nhà phát triển có kinh nghiệm cũng gặp phải thách thức với các biểu thức chính quy. Dưới đây là các giải pháp cho các vấn đề phổ biến:
Nếu mẫu của bạn hiển thị lỗi xác thực:
Nếu regex của bạn chậm hoặc gây lag cho trình duyệt:
(a+)+
)Nếu mẫu của bạn khớp với văn bản không mong muốn:
^
và $
) để khớp với toàn bộ chuỗi\b
) khi thích hợpNếu mẫu của bạn không khớp với văn bản mong đợi:
i
)Mặc dù regex rất mạnh mẽ, nhưng nó không phải lúc nào cũng là giải pháp tốt nhất cho mọi tác vụ xử lý văn bản:
Đối với các thao tác văn bản đơn giản, các phương thức chuỗi gốc thường rõ ràng và hiệu quả hơn:
String.indexOf()
để tìm các chuỗi conString.startsWith()
và String.endsWith()
để kiểm tra các ranh giới chuỗiString.split()
để phân tách cơ bảnĐối với các định dạng dữ liệu có cấu trúc, các trình phân tích chuyên dụng thường mạnh mẽ hơn:
Để hiểu nghĩa của văn bản thay vì chỉ các mẫu:
Cân nhắc các lựa chọn thay thế cho regex khi:
Biểu thức chính quy (regex) là một chuỗi ký tự xác định một mẫu tìm kiếm. Những mẫu này có thể được sử dụng cho việc tìm kiếm chuỗi, khớp và thao tác văn bản.
Một trình kiểm tra mẫu regex giúp bạn phát triển và gỡ lỗi các biểu thức chính quy bằng cách cung cấp phản hồi trực quan ngay lập tức về các khớp, xác thực cú pháp mẫu và cho phép bạn thử nghiệm với các mẫu và cờ khác nhau mà không cần phải triển khai chúng trong mã trước.
Để khớp với các ký tự đặc biệt mà thường có ý nghĩa đặc biệt trong regex, bạn cần thoát chúng bằng một dấu gạch chéo ngược. Ví dụ, để khớp với dấu chấm, sử dụng \.
thay vì chỉ .
.
.*
và .*?
trong một mẫu regex là gì?.*
là một bộ định lượng tham lam khớp với nhiều ký tự nhất có thể, trong khi .*?
là một bộ định lượng lười biếng (không tham lam) khớp với ít ký tự nhất có thể. Sự phân biệt này rất quan trọng khi bạn muốn tìm khớp ngắn nhất thay vì dài nhất.
Trong khi cú pháp regex cốt lõi tương tự nhau trong nhiều ngôn ngữ, có những khác biệt tinh tế trong việc triển khai. Trình kiểm tra của chúng tôi sử dụng động cơ regex của JavaScript, điều này tương thích với nhiều ngôn ngữ web nhưng có thể có sự khác biệt so với regex trong các ngôn ngữ như Python, Java hoặc Perl.
Để xác thực rằng một chuỗi hoàn toàn khớp với một mẫu, hãy sử dụng neo ^
ở đầu và neo $
ở cuối regex của bạn. Ví dụ, ^[0-9]+$
sẽ chỉ khớp với các chuỗi chỉ gồm các chữ số.
Các nhóm khớp, được tạo ra bằng dấu ngoặc đơn ()
, cho phép bạn trích xuất các phần cụ thể của văn bản đã khớp. Trong trình kiểm tra của chúng tôi, bạn có thể thấy tất cả các khớp, bao gồm cả các nhóm đã khớp. Trong các ngôn ngữ lập trình, bạn thường có thể truy cập các khớp này thông qua việc chỉ mục kết quả khớp.
Để cải thiện hiệu suất regex: hãy cụ thể với các lớp ký tự, tránh các nhóm khớp không cần thiết (sử dụng các nhóm không lưu (?:...)
khi có thể), hạn chế việc sử dụng các phép toán nhìn trước/nhìn sau, và tránh các mẫu có thể gây ra việc quay vòng thảm họa như các bộ định lượng lồng nhau.
Các sai lầm phổ biến bao gồm: không thoát các ký tự đặc biệt, tạo ra các mẫu quá tham lam, quên neo các mẫu (với ^
và $
), và viết các biểu thức quá phức tạp khó duy trì.
Các biểu thức chính quy không phù hợp để phân tích các cấu trúc lồng như HTML hoặc XML. Mặc dù bạn có thể tạo ra các mẫu regex cho việc khớp HTML đơn giản, nhưng thường thì tốt hơn là sử dụng một trình phân tích HTML chuyên dụng cho việc xử lý HTML phức tạp.
Hãy thử trình kiểm tra mẫu regex của chúng tôi hôm nay để đơn giản hóa các tác vụ xử lý văn bản của bạn, xác thực các định dạng đầu vào và trích xuất dữ liệu có ý nghĩa từ văn bản không cấu trúc. Dù bạn là một người mới học các cơ bản về biểu thức chính quy hay một nhà phát triển có kinh nghiệm làm việc với các khớp mẫu phức tạp, công cụ của chúng tôi cung cấp các tính năng bạn cần để tạo, kiểm tra và tinh chỉnh các mẫu regex của bạn một cách hiệu quả.
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn