Nội dung chính
Trong lĩnh vực lập trình và xử lý văn bản, biểu thức chính quy (regex) đóng vai trò là một công cụ mạnh mẽ để khớp mẫu và thao tác chuỗi. Tuy nhiên, việc viết và kiểm thử regex được đánh giá là một “thử thách” lớn đối với Developer (vì sự khó nhằn của chúng). Chính vì thế, các công cụ regex tester ra đời để hỗ trợ phần việc này.
Đọc ngay bài viết của ITviec để biết thêm về:
- Regex tester là gì
- Cú pháp regex tester trong các ngôn ngữ lập trình khác nhau
- Các công cụ regex tester online mà bạn nên biết
Regex tester là gì?
Regex tester, hay còn gọi là trình kiểm thử biểu thức chính quy, là công cụ giúp bạn kiểm thử các biểu thức chính quy (regular expressions). Biểu thức chính quy là một chuỗi các ký tự đặc biệt được sử dụng để tìm kiếm và phù hợp với các mẫu trong văn bản.
Công cụ regex tester cung cấp giao diện đơn giản để người dùng nhập một biểu thức chính quy cùng với một đoạn văn bản muốn kiểm tra. Sau đó, kết quả của việc áp dụng biểu thức chính quy đó lên văn bản thử nghiệm sẽ được hiển thị để giúp bạn kiểm tra xem biểu thức của mình có hoạt động như mong đợi không và tiến hành debug biểu thức đó nếu cần.
Các thành phần cốt lõi khi viết regex
Cú pháp biểu thức chính quy thay đổi tùy thuộc vào ngôn ngữ lập trình bạn đang sử dụng. ITviec sẽ tổng quan một số thành phần cốt lõi khi viết cú pháp regex của 3 ngôn ngữ lập trình phổ biến hiện nay là Java, JavaScript và Python.
Đối với Java Regex
Metacharacters
Regex | Nội dung |
. | Khớp với bất kỳ ký tự đơn nào ngoại trừ các ký tự dòng mới |
^ | So khớp với phần đầu của một chuỗi hoặc một dòng |
$ | So khớp với phần cuối của chuỗi hoặc dòng |
Character Classes
Regex | Nội dung |
[abc] | Khớp với bất kỳ kí tự nào trong số các kí tự a,b hoặc c |
[^abc] | Phủ định tập hợp, so khớp với bất kỳ ký tự nào khác ngoại trừ a, b và c |
[a-zA-Z] | Chỉ định phạm vi, khớp với bất kỳ ký tự nào trong bảng chữ cái từ a đến z hoặc A đến Z |
Predefined Character Classes
Regex | Nội dung |
\\d | So khớp với bất kỳ chữ số nào, tương đương với [0-9] |
\\D | So khớp với bất kỳ ký tự không phải là chữ số nào |
\\s | So khớp với bất kỳ ký tự khoảng trắng nào |
\\S | So khớp với bất kỳ ký tự không phải khoảng trắng nào |
\\w | So khớp với bất kỳ ký tự từ nào (chữ cái, số và dấu gạch dưới) |
\\W | So khớp với bất kỳ ký tự không phải từ nào |
Quantifiers
Regex | Nội dung |
“ | So khớp với nội dung 0 lần xuất hiện trở lên |
+ | So khớp với nội dung xuất hiện 1 hoặc nhiều lần |
? | So khớp với 0 hoặc 1 lần xuất hiện |
{n} | Xuất hiện chính xác với số lượng n lần |
{n,} | Xuất hiện ít nhất là n lần |
{n,m} | Số lần xuất hiện nằm trong khoảng từ n đến m |
Anchors và Boundaries
Regex | Nội dung |
\\b | Ranh giới của một từ |
\\B | Không phải ranh giới của một từ |
\\A | Bắt đầu chuỗi |
\\\\Z | Kết thúc chuỗi hoặc trước dòng mới ở cuối chuỗi |
\\\\z | Kết thúc chuỗi |
Tham khảo thêm: Học Java để làm gì? Các vị trí có thể làm sau khi học Java
Đối với JavaScript Regex
Metacharacters
Regex | Nội dung |
. | So khớp với bất kỳ ký tự đơn nào |
^ | Kiểm tra bắt đầu của một dòng hoặc chuỗi |
$ | Kiểm tra kết thúc của một dòng hoặc chuỗi |
Character Classes
Regex | Nội dung |
[abc] | Khớp với bất kỳ ký tự nào trong số các ký tự a, b và c |
[^abc] | Phủ định tập hợp, khớp với bất kỳ ký tự nào ngoại trừ a, b và c |
[a-zA-Z] | Chỉ định một phạm vi, khớp với bất kỳ chữ cái nào từ a đến z hoặc A tới Z |
Predefined Character Classes
Regex | Nội dung |
\\d | So khớp với bất kỳ chữ số nào |
\\D | So khớp với bất kỳ ký tự không phải là chữ số nào |
\\s | So khớp với bất kỳ ký tự khoảng trắng nào |
\\S | So khớp với bất kỳ ký tự không phải khoảng trắng nào |
\\w | So khớp với bất kỳ ký tự từ nào (chữ, số và dấu gạch dưới) |
\\W | Khớp với bất kỳ ký tự không phải chữ và số |
Quantifiers
Regex | Nội dung |
“ | Xuất hiện không hoặc nhiều lần |
+ | Xuất hiện một hoặc nhiều lần |
? | Xuất hiện không hoặc một lần |
{n} | Xuất hiện chính xác n lần |
{n,} | Xuất hiện n lần hoặc nhiều lần |
{n,m} | Số lần xuất hiện nằm trong khoảng từ n đến m lần |
Anchors và Boundaries
Regex | Nội dung |
\\b | Ranh giới của một từ |
\\B | Không phải ranh giới của một từ |
\\A | Bắt đầu chuỗi |
\\Z | Kết thúc chuỗi |
Đối với Python Regex
Metacharacters
Regex | Nội dung |
. | Khớp với bất kỳ ký tự nào ngoại trừ dòng mới |
^ | So khớp với phần đầu của một chuỗi |
$ | So khớp với phần cuối của chuỗi hoặc ngay trước dòng mới ở cuối |
Character Classes
Regex | Nội dung |
[abc] | Khớp với bất kỳ ký tự nào trong số a, b và c |
[^abc] | Phủ định tập hợp, khớp với bất kỳ ký tự nào ngoại trừ a, b và c |
[a-zA-Z] | Khớp với bất kỳ ký tự nào trong bảng chữ cái từ a đến z hoặc A đến Z |
Predefined Character Classes
Regex | Nội dung |
\\d | So khớp với bất kỳ chữ số nào |
\\D | So khớp với bất kỳ ký tự không phải là chữ số nào |
\\s | So khớp với bất kỳ ký tự khoảng trắng nào |
\\S | So khớp với bất kỳ ký tự không phải khoảng trắng nào |
\\w | So khớp với bất kỳ kí tự từ nào (chữ, số cộng và dấu gạch dưới) |
\\W | Khớp với bất kỳ ký tự không phải chữ và số |
Quantifiers
Regex | Nội dung |
“ | Khớp với 0 lần xuất hiện trở lên |
+ | Khớp với 1 hoặc nhiều lần xuất hiện của mẫu trong chuỗi |
? | Khớp 0 hoặc 1 lần xuất hiện |
{n} | Xuất hiện chính xác n lần |
{n,} | Xuất hiện ít nhất n lần |
{n,m} | Số lần xuất hiện nằm trong khoảng n và m |
Anchors và Boundaries
Regex | Nội dung |
\\b | Ranh giới của một từ |
\\B | Không phải ranh giới của một từ |
\\A | Bắt đầu chuỗi |
\\Z | Kết thúc chuỗi |
8 công cụ regex tester online mà tester nên biết
Regex Tester
Công cụ này cung cấp miễn phí để người dùng kiểm thử biểu thức chính quy của 3 ngôn ngữ lập trình là Javascript, PHP và Python.
Sau khi chọn ngôn ngữ bạn muốn sử dụng, hãy nhập hoặc dán chuỗi kiểm thử vào ô “Test String”, sau đó nhập các cú pháp tương ứng vào ô “Regular Expression”, kết quả sẽ được trả về tại ô bên phải của giao diện để bạn dễ dàng quan sát.
Online Regex Tester
Online Regex Tester là công cụ hỗ trợ bạn dùng để kiểm thử và xác thực các biểu thức chính quy trong ngôn ngữ lập trình JavaScript một cách dễ dàng theo thời gian thực. Người dùng có thể sử dụng phần mềm này miễn phí bằng cách đăng ký tài khoản sử dụng.
Giao diện của Online Regex Tester cũng tương đối đơn giản, bạn chỉ cần nhập hoặc dán biểu thức chính quy vào ô thông tin và chuỗi mẫu để kiểm tra regex tester. Mẫu Regex thể hiện bằng 2 màu sắc: màu xanh lá (mẫu hợp lệ) và mẫu đỏ (mẫu không hợp lệ). Kết quả trả về sẽ được biểu hiện bằng hai màu sắc gồm: Xanh lá (mẫu khớp với giá trị) và Đỏ (mẫu không khớp với giá trị).
Regex Tester (Elixir Stream)
Đây là công cụ kiểm thử regex tester dành riêng cho ngôn ngữ lập trình cấp cao Elixir và được cung cấp một cách miễn phí.
Trình kiểm tra regex này được thiết kế với giao diện cực kỳ đơn giản, gồm các trường như Regex, String, Flags để bạn dán các chuỗi và cú pháp tương ứng để tiến hành so khớp các thông tin.
CyrilEx
CyrilEx là một trình kiểm tra và debug biểu thức chính quy trực tuyến và miễn phí. Công cụ này tương thích với nhiều ngôn ngữ lập trình khác nhau như JavaScript, Java, Python, Ruby, PHP và MySQL 8.0.
Để sử dụng công cụ regex tester này, bạn tích chọn một trong các ngôn ngữ lập trình được hỗ trợ, dán hoặc nhập trực tiếp biểu thức chính quy vào trường “Regular expression to test”, bạn có thể lựa chọn các Flags ở ô bên cạnh, tiếp theo là dán hoặc nhập chuỗi thử nghiệm vào trường “String to test” thì hệ thống sẽ tiến hành kiểm thử cho bạn.
Akto’s Java Regex Tester
Công cụ Akto’s Java Regex Tester là phần mềm miễn phí giúp bạn kiểm tra và debug các biểu thức chính quy được viết bằng ngôn ngữ lập trình Golang, Python, Java và JavaScript.
Sau khi chọn ngôn ngữ lập trình muốn sử dụng, người dùng chỉ cần nhập hoặc dán regex vào ô “Regular expression”, nhập chuỗi thử nghiệm vào ô “Test String” và xem kết quả so khớp. Các kết quả trả về phù hợp sẽ được hiển thị với màu xanh nhạt để bạn dễ quan sát.
Regexr
Regexr cũng là một công cụ trực tuyến miễn phí giúp bạn xây dựng và kiểm thử các biểu thức chính quy trong ngôn ngữ JavaScript và PHP/PCRE.
Bên cạnh việc cung cấp các kết quả của chuỗi kiểm thử thì công cụ này còn cung cấp cho người dùng chức năng lưu và chia sẻ kết quả của biểu thức với mọi người. Đồng thời, nếu có sai sót trong quá trình kiểm tra thì bạn cũng dễ dàng thao tác lại bằng tổ hợp Ctrl Z/Y trong trình chỉnh sửa.
Regex101
Regex101 là công cụ tuyệt vời cho các Tester khi cung cấp chức năng kiểm thử regex miễn phí cho nhiều ngôn ngữ lập trình khác nhau như PCRE2, JavaScript, Python, Golang, Java 8, NET 7.0 và Rust.
Giao diện của công cụ cũng gồm các trường thông dụng như Regular expression và Test String để người dùng nhập dữ liệu và kiểm tra. Bên cạnh đó, nếu bạn đăng ký tài khoản sử dụng trên nền tảng này thì sẽ được cung cấp thêm tính năng lưu và chia sẻ kết quả kiểm thử đến cho mọi người.
Regex Tester – Test Regular Expressions
Regex Tester – Test Regular Expressions là ứng dụng giúp bạn kiểm tra các biểu thức chính quy để xem chúng có hoạt động chính xác hay không. Người dùng có thể tải phần mềm về máy tính (hệ điều hành Windows 10 phiên bản 18362.0 trở lên) để sử dụng với mức giá 0,99 USD.
Regex Tester – Test Regular Expressions cung cấp giao diện sử dụng đơn giản, bạn chỉ cần dán nội dung muốn kiểm tra vào phần “Test Text”, sau đó nhập các cú pháp muốn kiểm tra vào phần “Enter Regular expression” và chọn “Evaluate” là sẽ nhận được kết quả so khớp.
Các câu hỏi thường gặp về regex tester
Regex tester có phân biệt chữ hoa chữ thường không?
Theo mặc định, các biểu thức chính quy có phân biệt chữ hoa và chữ thường trong các regex tester. Tuy nhiên, một số công cụ có thể cho phép người dùng thiết lập lại chế độ không phân biệt chữ hoa chữ thường. Bạn có thể tham khảo phần cài đặt của các công cụ để bật cài đặt này nếu muốn áp dụng.
Dùng regex tester để làm gì?
- Kiểm tra chất lượng phần mềm: Các developer thường xuyên sử dụng biểu thức chính quy trong lập trình để thực hiện các tác vụ như xác thực đầu vào, phân tích dữ liệu và thao tác chuỗi. Trình kiểm thử Regex cho phép họ tinh chỉnh các mẫu biểu thức và xác minh tính chính xác của chúng trong thời gian thực.
- Làm sạch và phân tích dữ liệu: Bạn có thể tận dụng biểu thức chính quy để làm sạch và xử lý dữ liệu văn bản. Regex tester tạo điều kiện thuận lợi cho việc phát triển và thử nghiệm các mẫu biểu thức chính quy, đảm bảo độ chính xác trong việc trích xuất và chuyển đổi dữ liệu.
- Phát triển web: Trong quá trình phát triển web, regex tester có thể hỗ trợ việc xác thực biểu mẫu và phân tích cú pháp URL.
Tổng kết regex tester
Việc hiểu và sử dụng các công cụ regex tester không chỉ giúp bạn cải thiện đáng kể hiệu quả công việc mà còn trở thành yếu tố quan trọng trên con đường thăng tiến của bản thân trong lĩnh vực kiểm thử phần mềm.
Hy vọng với những thông tin về regex tester mà ITviec đã gửi đến trong bài viết này, bạn sẽ có thêm nhiều kiến thức hữu ích về regex tester là gì và các regex tester trực tuyến, miễn phí phổ biến hiện nay.
Bạn thấy bài viết hay và hữu ích? Đừng ngại Share với bạn bè và đồng nghiệp nhé.
Và nhanh tay tham khảo việc làm IT “chất” trên ITviec!