Kiểm tra và thử nghiệm các biểu thức chính quy

Thử nghiệm các biểu thức chính quy trực tuyến. Phân tích các kết quả khớp, sửa lỗi và tạo các mẫu hiệu quả để tìm kiếm dữ liệu.

Kiểm tra biểu thức chính quy

Kết quả biểu thức chính quy

Kết quả khớp

Không tìm thấy kết quả khớp

Phần còn lại

Không có nội dung không khớp

Hỗ trợ DevBox Tools ❤️

Tính năng của công cụ "Các biểu thức chính quy"

Kiểm tra các biểu thức chính quy

Cho phép bạn kiểm tra các mẫu RegExp theo thời gian thực, điều này đơn giản hóa việc phát triển và gỡ lỗi các mẫu tìm kiếm phức tạp.

Hỗ trợ các cờ và bộ sửa đổi khác nhau

Cho phép bạn xem xét độ nhạy chữ hoa chữ thường, tìm kiếm toàn cầu, chế độ nhiều dòng và các cài đặt khác được áp dụng trong các ngôn ngữ lập trình.

Tạo các mẫu để phân tích cú pháp dữ liệu

Cho phép bạn nhanh chóng tạo các biểu thức để xử lý tự động các mảng văn bản lớn, các tệp nhật ký và mã HTML.

Hướng dẫn và chi tiết sử dụng

Regular Expressions (Regex) là gì?

Regular expressions (Regex) là ngôn ngữ mẫu dùng để tìm kiếm, xác thực và xử lý văn bản.

Với regex, bạn có thể:

  • tìm các đoạn văn bản cụ thể (ví dụ: email, URL, số)

  • xác thực định dạng dữ liệu (kiểm tra biểu mẫu)

  • thay thế và làm sạch văn bản

  • trích xuất dữ liệu có cấu trúc từ chuỗi

Regex được sử dụng rộng rãi trong phát triển phần mềm, phân tích dữ liệu, SEO và tự động hóa.

Công cụ “Regex Tester” làm gì?

Công cụ này cho phép bạn kiểm tra regular expressions theo thời gian thực và xem ngay kết quả.

Với công cụ này, bạn có thể:

  • kiểm tra xem một chuỗi có khớp với mẫu hay không

  • xem tất cả các kết quả khớp trong văn bản

  • debug các biểu thức phức tạp

  • thử các biến thể regex khác nhau mà không cần viết mã

Các engine Regex phổ biến và sự khác biệt

Regular expressions không hoàn toàn mang tính phổ quát. Mức độ hỗ trợ cú pháp phụ thuộc vào ngôn ngữ lập trình và engine được sử dụng.

Engine

Sử dụng

Đặc điểm

JavaScript (ECMAScript)

Trình duyệt, Node.js

Hỗ trợ lookbehind hạn chế (tùy phiên bản)

PCRE

PHP, nhiều công cụ

Một trong những engine mạnh nhất

Python (re)

Python

Thiếu một số tính năng của PCRE

Java (Pattern)

Java

Cú pháp nghiêm ngặt

.NET

C#

Khả năng mở rộng nâng cao

Luôn kiểm tra regex trong đúng môi trường mà bạn sẽ sử dụng. Hãy chú ý đến sự khác biệt về lookbehind và hỗ trợ Unicode. Để tương thích đa nền tảng, nên ưu tiên các mẫu đơn giản hơn.

Các cờ (modifier flags) của Regex

Flags là các bộ điều chỉnh thay đổi cách mẫu được xử lý. Chúng cho phép bạn kiểm soát chữ hoa/chữ thường, phạm vi tìm kiếm (toàn bộ dòng hay nhiều dòng) và cách diễn giải ký tự.

Flag

Ý nghĩa

i

Không phân biệt hoa thường

g

Tìm kiếm toàn cục

m

Chế độ nhiều dòng

s

Dotall (bao gồm \n trong .)

u

Unicode

Các ký tự đặc biệt trong Regex

Kiểu

Ký hiệu

Mô tả

Neo (vị trí)

^

Bắt đầu chuỗi

Neo (vị trí)

$

Kết thúc chuỗi

Neo (vị trí)

\b

Ranh giới từ

Neo (vị trí)

\B

Không phải ranh giới từ

Ký tự meta

.

Khớp với bất kỳ ký tự nào ngoại trừ xuống dòng (\n)

Ký tự meta

|

Toán tử HOẶC (OR)

Ký tự meta

\

Ký tự escape

Ký tự literal

a

Ký tự “a”

Ký tự literal

ab

Chuỗi “ab”

Bộ định lượng

*

0 hoặc nhiều lần lặp

Bộ định lượng

?

0 hoặc 1 lần lặp

Bộ định lượng

+

1 hoặc nhiều lần lặp

Bộ định lượng

{5}

Chính xác 5 lần lặp

Bộ định lượng

{5,}

5 hoặc nhiều lần lặp

Bộ định lượng

{5,10}

Từ 5 đến 10 lần lặp

Lớp ký tự

\s

Khoảng trắng

Lớp ký tự

\S

Không phải khoảng trắng

Lớp ký tự

\w

Ký tự từ (chữ + số + gạch dưới)

Lớp ký tự

\W

Không phải ký tự từ

Lớp ký tự

\d

Chữ số

Lớp ký tự

\D

Không phải chữ số

Chuỗi escape

[\b]

Backspace

Chuỗi escape

\c

Ký tự điều khiển

Chuỗi escape

\n

Xuống dòng

Chuỗi escape

\t

Tab

Chuỗi escape

\r

Ký tự về đầu dòng

Chuỗi escape

\ZZZ

Ký tự bát phân

Chuỗi escape

\xZZ

Ký tự thập lục phân

Chuỗi escape

\0

Ký tự null

Chuỗi escape

\v

Tab dọc

Nhóm

(xyz)

Nhóm bắt giữ

Nhóm

(?:xyz)

Nhóm không bắt giữ

Tập hợp và khoảng

[xyz]

Một trong x, y, z

Tập hợp và khoảng

[^xyz]

Không phải x, y, z

Tập hợp và khoảng

[a-q]

Khoảng từ a đến q

Tập hợp và khoảng

[0-7]

Khoảng từ 0 đến 7

Mẫu thay thế

$`

Văn bản trước phần khớp

Mẫu thay thế

$'

Văn bản sau phần khớp

Mẫu thay thế

$+

Nhóm bắt giữ cuối cùng

Mẫu thay thế

$&

Toàn bộ chuỗi khớp

Mẫu thay thế

$n

Nhóm bắt giữ thứ n (ví dụ: $1, $2)

Lookaround

(?=xyz)

Positive lookahead

Lookaround

(?!xyz)

Negative lookahead

Lookaround

(?<=xyz)

Positive lookbehind

Lookaround

(?<!xyz)

Negative lookbehind

Bình luận

(?#comment)

Bình luận (engine sẽ bỏ qua)

Các mẫu Regex thường dùng

Tác vụ

Regex

Chỉ chữ số

^\d+$

Chỉ chữ cái Latin

^[A-Za-z]+$

Ngày (DD.MM.YYYY)

\d{2}\.\d{2}\.\d{4}

Tên miền

^[a-z0-9.-]+\.[a-z]{2,}$

URL

https?:\/\/[^\s]+

Slug

^[a-z0-9-]+$

Email (cơ bản)

^[^\s@]+@[^\s@]+\.[^\s@]+$

Email (nghiêm ngặt)

^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$

Điện thoại (chung)

^\+?\d{7,15}$

Thẻ HTML

<[^>]+>

Mật khẩu mạnh

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{12,}$

UUID

^[0-9a-fA-F-]{36}$

Màu HEX

^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$

IP (IPv4)

^(\d{1,3}\.){3}\d{1,3}$

Địa chỉ MAC

^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$

Những lỗi Regex thường gặp

Regular expressions thường trông có vẻ đơn giản, nhưng thực tế có rất nhiều chi tiết dễ gây nhầm lẫn. Dưới đây là những lỗi phổ biến dẫn đến kết quả không chính xác.

Lỗi cú pháp và logic

  • Thiếu escape: . khớp với mọi ký tự, không phải dấu chấm literal → dùng \.

  • Dùng sai bộ định lượng: *, +, {} áp dụng cho token phía trước, không phải toàn bộ chuỗi

  • Nhầm giữa greedy và lazy: .* là greedy → dùng .*? nếu cần khớp tối thiểu

Vấn đề khi khớp chuỗi

  • Thiếu neo ^$: nếu không có, regex có thể khớp ở bất kỳ đâu trong chuỗi

  • Phân biệt hoa/thường: "Test" ≠ "test" → dùng flag i nếu cần

  • Nhầm lẫn với khoảng trắng: \s bao gồm tab, xuống dòng, v.v., không chỉ là dấu cách

Lỗi trong sử dụng thực tế

  • Dùng \w cho Unicode: trong hầu hết engine, \w = [A-Za-z0-9_] (không bao gồm Cyrillic, v.v.)

  • Dùng regex để parse định dạng phức tạp (HTML, JSON): không đáng tin cậy → nên dùng parser chuyên dụng

  • Biểu thức quá phức tạp: khó bảo trì và debug

Vấn đề hiệu năng

  • Bộ định lượng lồng nhau: ví dụ (.*)+ có thể gây catastrophic backtracking

  • Mẫu không có giới hạn: .* không có ràng buộc có thể làm chậm xử lý trên chuỗi lớn

Mô tả công cụ

alien

Lưu ý rằng các biểu thức chính quy trong công cụ này được xử lý theo tiêu chuẩn ECMAScript (JavaScript RegExp). Điều này có nghĩa là hành vi của các mẫu tương ứng với cách chúng hoạt động trong trình duyệt hoặc trong mã JavaScript. Một số cấu trúc, chẳng hạn như thoát các ký tự (/ và /), có thể hoạt động giống nhau ngay cả khi chúng trông khác nhau. Nếu bạn đã quen với các biểu thức chính quy trong các ngôn ngữ khác (ví dụ: Python, PHP, .NET hoặc POSIX), hãy lưu ý rằng có thể có sự khác biệt về cú pháp và logic so khớp.

Công cụ này cho phép bạn kiểm tra các biểu thức chính quy (RegEx) và xác minh hoạt động của chúng. RegEx được sử dụng rộng rãi trong lập trình, xử lý dữ liệu và phân tích SEO.

Với nó, bạn có thể tìm kiếm, thay thế và phân tích các mẫu văn bản, đơn giản hóa công việc với khối lượng lớn dữ liệu.

Câu hỏi thường gặp (FAQ)

Biểu thức chính quy (regex) là các công cụ so khớp mẫu mạnh mẽ để tìm kiếm, xác thực và thao tác văn bản. Chúng cần thiết để xác thực dữ liệu, các hoạt động tìm kiếm và các tác vụ xử lý văn bản.

Trình kiểm tra biểu thức chính quy của chúng tôi cho phép bạn nhập các mẫu và các chuỗi thử nghiệm để xem các kết quả khớp theo thời gian thực. Bạn có thể thử nghiệm với các mẫu khác nhau và xem phần nào của văn bản của bạn khớp với biểu thức.

Các mẫu phổ biến bao gồm xác thực email, số điện thoại, ngày tháng, URL và mã bưu điện. Tìm hiểu các ký tự meta cơ bản như ., *, +, ?, ^, $ và các lớp ký tự như \d, \w, \s.

Các cờ thường được sử dụng bao gồm i (bỏ qua chữ hoa chữ thường), g (tìm kiếm toàn cầu), m (chế độ nhiều dòng) và u (hỗ trợ Unicode). Chúng giúp kiểm soát tìm kiếm và so khớp chính xác hơn.

Các mẫu phức tạp có quay lui có thể chậm trên các văn bản lớn. Tối ưu hóa bằng cách cụ thể, tránh các lượng từ lồng nhau và sử dụng các neo (^ và $) khi có thể. Kiểm tra hiệu suất với các kích thước dữ liệu thực tế.

Các nhóm bắt là các phần của biểu thức chính quy (được xác định bằng dấu ngoặc đơn) cho phép bạn trích xuất các phần phụ cụ thể của văn bản khớp với mẫu. Điều này hữu ích để định dạng lại hoặc trích xuất dữ liệu cụ thể.

Một lượng từ 'tham lam' (ví dụ: `.*`) sẽ cố gắng khớp với càng nhiều ký tự càng tốt. Một lượng từ 'lười biếng' (ví dụ: `.*?`) sẽ cố gắng khớp với càng ít ký tự càng tốt. Sự lựa chọn phụ thuộc vào hành vi so khớp mong muốn.

Hầu hết các triển khai biểu thức chính quy hiện đại đều hỗ trợ Unicode, cho phép so khớp các ký tự trong các ngôn ngữ và bảng chữ cái khác nhau. Tuy nhiên, sự hỗ trợ chính xác có thể khác nhau giữa các ngôn ngữ lập trình và công cụ.

Đánh giá công cụ này
4.5(25 người dùng đã đánh giá)