Regex là viết tắt của Regular Expression, tên thuần Việt là biểu thức chính quy. Regex phân biệt chữ hoa chữ thường, khi bạn muốn không phân biệt chữ hoa và chữ thường trong chuỗi thì phải thiết lập cờ. Trong Google Sheets, biểu thức chính quy được sử dụng thông qua các hàm REGEXMATCH, REGEXEXTRACT, REGEXREPLACE, và sử dụng trong hàm QUERY với câu lệnh matches. Các biểu thức chính quy này được đặt trong ngoặc kép “…”.
Regex một nhóm các siêu ký tự viết ra theo quy luật nhất định (từ trái qua phải) tạo thành mẫu. Nghĩa là bạn phải xác định được quy luật của chuỗi (viết chuỗi văn bản dưới dạng biểu thức chính quy). Nhóm hàm Regex chạy từ trái qua phải của chuỗi, dừng lại ở nhóm ký tự thỏa mãn biểu thức chính quy, các ký tự này phải là liên tiếp, nghĩa là biểu thức chính quy “xyz” sẽ không khớp với “x” hoặc “xy” hoặc “yzx”, mà khớp đúng với “xyz” hoặc “xyz123” hoặc “ggs xyz”
📒Lời khuyên: Vui lòng đọc lướt qua ví dụ dưới đây, để bạn mường tượng cách chuyển từ “ngôn ngữ đời thường” sang “ngôn ngữ biểu thức chính quy”. Đừng cố hiểu ngay biểu thức chính quy trong phần này 😀, hãy đọc lướt qua, tìm hiểu từ các siêu ký tự của biểu thức chính quy ở bài tiếp theo và quay lại hiểu kỹ ví dụ phần này.
Giả sử bạn yêu cầu tên tài khoản người dùng (không dấu Tiếng Việt) phải tuân thủ quy tắc:
(i) Tên được phép chứa các ký tự chữ cái viết thường (a-z), chữ cái viết hoa (A-Z), và dấu cách.
(ii) Tên phải có độ dài trong khoảng từ 3 đến 20 ký tự.
Thì biểu thức chính quy biểu diễn quy tắc đó sẽ như sau:
^[a-zA-Z ]{3,20}$
^ Ký hiệu cho biết bắt đầu một dòng.
[a-zA-Z ] Gồm các chữ cái viết thường (a-z), chữ cái viết hoa (A-Z), và dấu cách ( ).
{3,20} Chuỗi dài 3 đến 20 ký tự.
$: Điểm kết thúc dòng.
Với biểu thức chính quy như trên, chuỗi phù hợp đọc từ trái qua phải thì: bắt đầu một dòng rồi đến tập ký tự chỉ chứa [a-zA-Z ], chuỗi này dài 3 – 20, cuối cùng là kết thúc dòng. Nên các trường hợp không khớp như “An” có 2 ký tự và “999 flowers” có cả số, “Trần Quốc Hoàn” là Tiếng Việt có dấu sẽ trả kết quả hàm REGEXMATCH là FALSE.
Công thức:
REGEXMATCH(văn bản; biểu thức chính quy)
REGEXEXTRACT(văn bản; biểu thức chính quy)
REGEXREPLACE(văn bản; biểu thức chính quy; thay thế)
REGEXEXTRACT cho phép chúng ta trích xuất một chuỗi con ký tự được chỉ định, trong đó REGEXREPLACE cho phép chúng ta thay thế một loại ký tự được chỉ định bằng một chuỗi trống/được chỉ định (về cơ bản là một cách trích xuất khác, ngoại trừ). Còn REGEXMATCH xác định liệu một đoạn văn bản có phù hợp với biểu thức chính quy hay không (trả về quả TRUE hoặc FALSE; nếu bạn nhân hàm REGEXMATCH với 1 thì kết quả sẽ trả về 1 và 0). Nói cách khác, REGEXREPLACE có thể được sử dụng để trích xuất/thay thế tất cả phiên bản của một loại ký tự được chỉ định được tìm thấy trong một chuỗi, trong đó hàm REGEXEXTRACT có thể được sử dụng để trích xuất các phần chỉ định của chuỗi nguồn trong đó các ký tự được chỉ định xuất hiện liên tiếp.
Biểu thức chính quy đúng với 1 hàm của nhóm hàm Regex thì sẽ đúng với 2 hàm còn lại, nên trong tài liệu này, tác giả chỉ lấy ví dụ đối với 1 hàm, độc giả tự sử dụng biểu thức chính quy đối với 2 hàm còn lại.