CƠ BẢN VỀ CHỨNG CHỈ LPI - Trang 34

3.1 Biểu thức chính quy

25

3.1.7

Sử dụng [ˆ]

Bạn có thể đảo ngược ý nghĩa của dấu ngoặc vuông bằng cách đặt một \^{} ngay sau [.
Trong trường hợp này, dấu ngoặc đơn sẽ tìm tương ứng bất kỳ ký tự nào mà không được liệt
kê trong chúng. Nhắc lại lần nữa, chú ý rằng chúng ta dùng [\^{}] với biểu thức chính
quy, nhưng [!] với "glob":

$ grep dev.hda[^{}12] /etc/fstab

/dev/hda3

/

reiserfs noatime,ro 1 1

#/dev/hda4 /mnt/extra reiserfs noatime,rw 1 1

3.1.8

Cú pháp khác

Cần biết rằng cú pháp bên trong ngoặc vuông khác cơ bản với những phần khác của biểu
thức chính quy. Ví dụ, nếu bạn đặt một . bên trong ngoặc vuông, nó cho phép ngoặc vuông
tìm tương ứng một ký tự thường ., giống như 1 và 2 trong ví dụ trên. Để so sánh, một ký tự .
ngoài ngoặc vuông được biên dịch như một ký tự mêta trừ khi đặt sau một $\backslash$.
Chúng ta có thể lợi dụng điều này để in ra danh sách tất cả những dòng trong /etc/fstab mà
chứa dòng văn bản dev.hda bằng cách gõ:

$ grep dev[.]hda /etc/fstab

Một cách tương tự, có thể gõ:

$ grep "dev\.hda" /etc/fstab}

Có thể không biểu thức chính quy nào tìm thấy tương ứng trong /etc/fstab của bạn.

3.1.9

Ký tự mêta "*"

Một vài ký tự mêta tự chúng không tương ứng với bất kỳ thứ gì, nhưng thay đổi ý nghĩa của
ký tự đứng trước. Một ký tự mêta như vậy là * (dấu sao), mà được sử dụng để tìm tương ứng
không (0) hay nhiều lần lặp lại của ký tự đứng trước. Lưu ý điều đó có nghĩa rằng * có một
ý nghĩa khác trong regex so với trong glob. Đây là một số ví dụ, và cần quan tâm tới những
trường hợp cá biệt khi regex khác với glob:

• ab*c tương ứng abbbbc nhưng không tương ứng abqc (Nếu là glob, nó sẽ tương

ứng cả hai chuỗi – bạn có thể đoán ra tại sao không?)

• ab*c tương ứng abc nhưng không tương ứng abbqbbc (nhắc lại, nếu một glob, nó

sẽ tương ứng cả hai)

• ab*c tương ứng ac nhưng không tương ứng cba (nếu một glob, nó sẽ không tương

ứng cả ac và ba|)

• b[cq]*e tương ứng bqe và be (nếu một glob, nó sẽ tương ứng bqe nhưng be thì

không)

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.