Biểu thức chính quy Linux là gì?
Biểu thức chính quy Linux là các ký tự đặc biệt giúp tìm kiếm dữ liệu và khớp với các mẫu phức tạp. Cụm từ thông dụng được rút ngắn thành 'regexp' hoặc 'regex'. Chúng được sử dụng trong nhiều chương trình Linux như grep, bash, rename, sed, v.v.
Các loại biểu thức chính quy
Để dễ hiểu, chúng ta hãy tìm hiểu từng loại Regex khác nhau.
- Biểu thức chính quy cơ bản
- Khoảng thời gian Biểu thức chính quy
- Biểu thức chính quy mở rộng
- Tóm lược
Bấm vào đây nếu video không thể truy cập được
Biểu thức chính quy cơ bản
Một số lệnh thường được sử dụng với Biểu thức chính quy là tr, sed, vi và grep. Dưới đây là một số Regex cơ bản.
Biểu tượng | Mô tả |
---|---|
. | thay thế bất kỳ ký tự nào |
khớp với phần bắt đầu của chuỗi | |
$ | khớp với cuối chuỗi |
* | khớp với không hoặc nhiều hơn ký tự trước đó |
\ | Đại diện cho các ký tự đặc biệt |
() | Nhóm các biểu thức chính quy |
? | Khớp chính xác một ký tự |
Hãy xem một ví dụ.
Thực thi mẫu mèo để xem nội dung của tệp hiện có
Tìm kiếm nội dung có chứa chữ cái 'a'.
' ^ ' khớp với phần bắt đầu của một chuỗi. Hãy tìm kiếm nội dung NGÔI SAO với
Chỉ những dòng bắt đầu bằng ký tự mới được lọc. Các dòng không chứa ký tự 'a' ở đầu sẽ bị bỏ qua.
Hãy xem xét một ví dụ khác -
Chỉ chọn những dòng kết thúc bằng t sử dụng $
Khoảng thời gian Biểu thức chính quy
Các biểu thức này cho chúng ta biết về số lần xuất hiện của một ký tự trong một chuỗi. họ đang
Biểu hiện | Sự miêu tả |
---|---|
{n} |
Khớp chính xác ký tự đứng trước xuất hiện 'n' lần |
{n, m} | Khớp với ký tự đứng trước xuất hiện 'n' lần nhưng không quá m |
{n,} | Chỉ khớp với ký tự đứng trước khi nó xuất hiện 'n' lần trở lên |
Thí dụ:
Lọc ra tất cả các dòng chứa ký tự 'p'
Chúng tôi muốn kiểm tra xem ký tự 'p' có xuất hiện chính xác 2 lần trong một chuỗi lần lượt hay không. Đối với điều này, cú pháp sẽ là:
cat sample | grep -E p\{2}
Lưu ý: Bạn cần thêm -E với các biểu thức chính quy này.
Biểu thức chính quy mở rộng
Các biểu thức chính quy này chứa các kết hợp của nhiều hơn một biểu thức. Một số trong số đó là:
Biểu hiện | Sự miêu tả |
---|---|
\ + |
Khớp một hoặc nhiều lần xuất hiện của ký tự trước đó |
\? |
Đối sánh không hoặc một lần xuất hiện của ký tự trước đó |
Thí dụ:
Tìm kiếm tất cả các ký tự 't'
Giả sử chúng ta muốn lọc ra các dòng có ký tự 'a' đứng trước ký tự 't'
Chúng ta có thể sử dụng lệnh như
cat sample|grep "a\+t"
Mở rộng dấu ngoặc
Cú pháp để mở rộng dấu ngoặc nhọn là một chuỗi hoặc một danh sách các mục được phân tách bằng dấu phẩy bên trong dấu ngoặc nhọn "{}". Các mục bắt đầu và kết thúc trong một chuỗi được phân tách bằng hai dấu chấm "…".
Vài ví dụ:
Trong các ví dụ trên, lệnh echo tạo chuỗi bằng cách sử dụng mở rộng dấu ngoặc nhọn.
Tóm lược:
- Biểu thức chính quy là một tập hợp các ký tự được sử dụng để kiểm tra các mẫu trong chuỗi
- Chúng còn được gọi là 'regexp' và 'regex'
- Điều quan trọng là học các biểu thức chính quy để viết script
- Một số biểu thức chính quy cơ bản là:
Biểu tượng | Mô tả |
---|---|
. | thay thế bất kỳ ký tự nào |
khớp với phần bắt đầu của chuỗi | |
$ | khớp với cuối chuỗi |
- Một số biểu thức chính quy mở rộng là:
Biểu hiện | Sự miêu tả |
---|---|
\ + | Khớp một hoặc nhiều lần xuất hiện của ký tự trước đó |
\? | Đối sánh không hoặc một lần xuất hiện của ký tự trước đó |
- Một số biểu thức chính quy ngắt quãng là:
Biểu hiện | Sự miêu tả |
---|---|
{n} | Khớp chính xác ký tự đứng trước xuất hiện 'n' lần |
{n, m} | Khớp với ký tự đứng trước xuất hiện 'n' lần nhưng không quá m |
{n,} | Chỉ khớp với ký tự đứng trước khi nó xuất hiện 'n' lần trở lên |
- Phần mở rộng dấu ngoặc nhọn được sử dụng để tạo chuỗi. Nó giúp tạo ra nhiều chuỗi từ một chuỗi.