Giới thiệu về Biểu thức chính quy
Biểu thức chính quy khá phổ biến trong lập trình máy tính. Nhưng chúng cũng có sẵn cho người dùng cuối. Ví dụ: nếu bạn đang xử lý PowerShell hoặc lệnh Findstr, bạn có thể sử dụng chúng. Và có các tiện ích của bên thứ ba (chẳng hạn như Agent Ransack và EditPad) hỗ trợ các biểu thức chính quy. Vì chúng rất hữu ích trong nhiều môi trường khác nhau, tôi quyết định rằng một mẹo về chúng là theo thứ tự.
Biểu thức chính quy là một chuỗi, thường bao gồm các ký tự đặc biệt, được thiết kế để khớp với mẫu tìm kiếm. Ví dụ: nếu chúng ta đang sử dụng lệnh Findstr, chúng ta có thể tìm kiếm từ “tài liệu”
ngay sau đó là dấu phẩy hoặc dấu chấm bằng cách chỉ định chuỗi tìm kiếm “document [,.]”. Các ký tự đặc biệt trong trường hợp này là dấu ngoặc vuông, có nghĩa là bất kỳ một trong các ký tự kèm theo đều phải theo sau từ “document”.
Có rất nhiều ký tự đặc biệt có thể được sử dụng trong một biểu thức chính quy. Nhiều trong số đó được liệt kê dưới đây:
Character |
Description |
|
Match 0 or more characters. Example: haven matches both heaven and haven. |
||
+ |
Match 1 or more characters. Example: he+aven matches heaven and heeaven but not haven. |
|
^ |
Match what follows only if it’s at the beginning of the string. Example: if your regular expression is ^document, it will match document in the string “document the requirements”, but it will not match anything in the string “this is a requirements document”. |
|
$ |
Match what precedes only if it’s at the end of the string. Example: if your regular expression is document$, it will match document in the string “this is a requirements document”, but it will not match anything in the string “document the requirements”. |
|
\d |
Match a digit. Example: \d matches each digit individually in the string “my degree is from 1987”. If you want to match all four digits at once, just repeat the \d like \d\d\d\d. |
|
. |
Match any single character. The period is like a wildcard in that it will match anything. |
|
(a |
b) |
Để xem các biểu thức chính quy đang hoạt động, hãy kết hợp một số và sử dụng lệnh Findstr để tìm các lần xuất hiện của các chuỗi trong một tệp. Tôi có một tệp tên là Barry.tmp chứa văn bản sau:
Video provides a powerful way to help you prove your point. When you click Online Video, you can paste in the embed code for the 20 or 30 videos you want to add. You can also type a keyword to search online for the video that best fits your document.
Hãy sử dụng Findstr để tìm các chuỗi chữ số trong tệp: (Xem Hình 1.)
Hình 1. Tìm kiếm chuỗi các chữ số.
Hãy để tôi giới thiệu một vài khái niệm khác. Bạn có thể sử dụng một cặp dấu ngoặc vuông để phân định một loạt các ký tự được tìm thấy. Ví dụ: chỉ định _ [a-z] _ sẽ khớp với bất kỳ ký tự chữ cái nào. Cũng cần lưu ý là bạn sử dụng ký tự gạch chéo ngược (\) để “thoát” ký tự theo sau và xử lý nó theo nghĩa đen. Điều này rất hữu ích nếu bạn muốn tìm một ký tự mà nếu không sẽ được coi là một phần của biểu thức chính quy. Với hai phần thông tin này, giờ đây chúng ta có thể tìm kiếm trong tệp của mình một ký tự chữ cái theo sau là dấu chấm, tức là tìm các dòng ở cuối câu: (Xem Hình 2)
Hình 2. Tìm kiếm cuối câu.
Tôi xin kết thúc bằng một lời cảnh báo: Theo kinh nghiệm của tôi, công cụ biểu thức chính quy được sử dụng trong dòng lệnh Windows hơi khác với hầu hết các công cụ biểu thức chính quy. Biểu thức chính quy hoạt động (và hoạt động trong các tiện ích khác) có thể không hoạt động như mong đợi tại dòng lệnh. Vì vậy, biết số dặm của bạn có thể thay đổi, hãy thử nghiệm với chúng, nhưng đừng đặt cược vào lần trả lương tiếp theo của bạn rằng những gì bạn đã nhập sẽ hoạt động như mong đợi.
Mẹo này (1364) áp dụng cho Windows 7, 8 và 10.