Với Terminal: Sử dụng biểu thức chính quy

Một trong những điều tôi luôn yêu thích về thiết bị đầu cuối Linux là những gì bạn có thể đạt được bằng cách sử dụng biểu thức chính quy. Cho dù chúng ta cần tìm văn bản phức tạp hoặc thay thế nó bằng một thứ khác, việc sử dụng biểu thức chính quy có thể đơn giản hóa công việc rất nhiều. Hãy bắt đầu lại từ đầu:

CẢNH BÁO: Bài đăng này là một nỗi đau trong mông. Đọc bài này mọi lúc có thể gây mất ý thức. Hãy nghỉ giữa chừng hoặc hỏi bác sĩ hoặc dược sĩ của bạn trước khi đọc toàn bộ bài đăng.

Biểu thức chính quy là gì?

Biểu thức chính quy là một chuỗi các ký tự đặc biệt cho phép chúng ta mô tả một văn bản mà chúng ta muốn tìm. Ví dụ, nếu chúng ta muốn tìm kiếm từ "linux" thì chỉ cần đưa từ đó vào chương trình chúng ta đang sử dụng là đủ. Bản thân từ này là một biểu thức chính quy. Cho đến nay nó có vẻ rất đơn giản, nhưng nếu chúng ta muốn tìm tất cả các số trong một tệp nhất định thì sao? Hay tất cả các dòng bắt đầu bằng một chữ cái viết hoa? Trong những trường hợp đó, bạn không còn có thể đặt một từ đơn giản. Giải pháp là sử dụng một biểu thức chính quy.

Biểu thức chính quy so với các mẫu tệp.

Trước khi chúng ta đi sâu vào chủ đề của cụm từ thông dụng, tôi muốn làm rõ một cách hiểu sai lầm phổ biến về cụm từ thông dụng. Biểu thức chính quy không phải là những gì chúng tôi đặt làm tham số trong các lệnh như rm, cp, v.v. để tham chiếu đến các tệp khác nhau trên ổ cứng. Đó sẽ là một mẫu tệp. Các biểu thức chính quy, mặc dù giống nhau ở chỗ chúng sử dụng một số ký tự chung, nhưng lại khác. Một mẫu tệp được kích hoạt đối với các tệp trên đĩa cứng và trả về các tệp hoàn toàn khớp với mẫu, trong khi biểu thức chính quy được kích hoạt dựa trên văn bản và trả về các dòng chứa văn bản được tìm kiếm. Ví dụ: biểu thức chính quy tương ứng với mẫu *.* nó sẽ giống như ^.*\..*$

Các loại biểu thức chính quy.

Không phải tất cả các chương trình đều sử dụng biểu thức chính quy giống nhau. Không ít hơn nhiều. Có một số loại biểu thức chính quy chuẩn hoặc ít hơn, nhưng có những chương trình thay đổi một chút cú pháp, bao gồm phần mở rộng của riêng chúng hoặc thậm chí sử dụng các ký tự hoàn toàn khác. Vì vậy, khi bạn muốn sử dụng biểu thức chính quy với một chương trình mà bạn không biết rõ, việc đầu tiên cần làm là xem hướng dẫn sử dụng hoặc tài liệu của chương trình đó để xem biểu thức chính quy nó nhận dạng là như thế nào.

Đầu tiên, có hai loại biểu thức chính quy chính, được chứa trong tiêu chuẩn POSIX, là những gì các công cụ Linux sử dụng. Chúng là các biểu thức chính quy cơ bản và mở rộng. Nhiều lệnh hoạt động với biểu thức chính quy, chẳng hạn như grep hoặc sed, cho phép bạn sử dụng hai loại này. Tôi sẽ nói về chúng dưới đây. Ngoài ra còn có các biểu thức chính quy kiểu PERL, và sau đó có các chương trình như vim hoặc emacs sử dụng các biến thể của chúng. Tùy thuộc vào những gì chúng tôi muốn làm, nó có thể thích hợp hơn để sử dụng cái này hoặc cái kia.

Kiểm tra biểu thức chính quy.

Cú pháp của biểu thức chính quy không có gì là tầm thường. Khi chúng ta phải viết một biểu thức chính quy phức tạp, chúng ta sẽ đứng trước một chuỗi ký tự đặc biệt mà thoạt nhìn không thể hiểu được, vì vậy để học cách sử dụng chúng, điều cần thiết là phải có cách để thực hiện tất cả các bài kiểm tra chúng ta muốn và xem. kết quả một cách dễ dàng. Đó là lý do tại sao bây giờ tôi sẽ đặt một số lệnh mà chúng ta có thể thực hiện các bài kiểm tra và thử nghiệm mọi thứ chúng ta cần cho đến khi chúng ta thống trị các biểu thức chính quy.

Đầu tiên là lệnh grep. Đây là lệnh chúng tôi sẽ sử dụng thường xuyên nhất để thực hiện tìm kiếm. Cú pháp như sau:

grep [-E] 'REGEX' FICHERO
COMANDO | grep [-E] 'REGEX'

Tôi khuyên bạn nên luôn đặt các biểu thức chính quy trong dấu ngoặc kép để trình bao không giúp chúng ta xử lý nó. Cách đầu tiên là tìm một biểu thức chính quy trong một tệp. Thứ hai cho phép lọc đầu ra của một lệnh thông qua một biểu thức chính quy. Theo mặc định, grep sử dụng các biểu thức chính quy cơ bản. Tùy chọn -E là để sử dụng các biểu thức chính quy mở rộng.

Một thủ thuật có thể giúp chúng ta xem biểu thức chính quy hoạt động như thế nào là cho phép sử dụng màu trong lệnh grep. Bằng cách đó, phần văn bản khớp với cụm từ thông dụng mà chúng tôi đang sử dụng sẽ được đánh dấu. Để kích hoạt màu trong lệnh grep, chỉ cần đảm bảo rằng biến môi trường GREP_OPTIONS chứa đựng trong giá trị --color, có thể được thực hiện bằng lệnh này:

GREP_OPTIONS=--color

Chúng ta có thể đặt nó trong .bashrc để luôn kích hoạt nó.

Một cách khác để sử dụng biểu thức chính quy là sử dụng lệnh sed. Điều này phù hợp hơn để thay thế văn bản, nhưng cũng có thể được sử dụng để tìm kiếm. Cú pháp của nó sẽ như thế này:

sed -n[r] '/REGEX/p' FICHERO
COMANDO | sed -n[r] '/REGEX/p'

Lệnh sed cũng sử dụng các biểu thức chính quy cơ bản theo mặc định, bạn có thể sử dụng các biểu thức chính quy mở rộng với tùy chọn -r.

Một lệnh khác mà tôi cũng muốn đặt tên là awk. Lệnh này có thể được sử dụng cho nhiều việc, vì nó cho phép bạn viết script bằng ngôn ngữ lập trình của riêng bạn. Nếu những gì chúng ta muốn là tìm một biểu thức chính quy trong một tệp hoặc trong đầu ra của một lệnh, thì cách sử dụng nó sẽ như sau:

awk '/REGEX/' FICHERO
COMANDO | awk '/REGEX/'

Lệnh này luôn sử dụng các biểu thức chính quy mở rộng.

Để thực hiện các bài kiểm tra của chúng tôi, chúng tôi cũng sẽ cần một văn bản làm ví dụ để tìm kiếm nó. Chúng ta có thể sử dụng văn bản sau:

- Lista de páginas wiki:

ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/

- Fechas de lanzamiento:

Arch Linux: 11-03-2002
Gentoo: 31/03/2002
CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10/2004

Desde Linux Rulez.

Đây là văn bản mà tôi sẽ sử dụng cho các ví dụ của phần còn lại của bài đăng, vì vậy tôi khuyên bạn nên sao chép nó trong một tệp để có nó trong tầm tay từ thiết bị đầu cuối. Bạn có thể đặt tên mà bạn muốn. Tôi đã gọi nó là regex.

Bắt đầu bài học.

Bây giờ chúng tôi có mọi thứ chúng tôi cần để bắt đầu thử nghiệm biểu thức chính quy. Hãy đi từng chút một. Tôi sẽ đưa ra một số ví dụ về các tìm kiếm với cụm từ thông dụng, trong đó tôi sẽ giải thích mỗi ký tự dùng để làm gì. Chúng không phải là những ví dụ điển hình, nhưng vì tôi sẽ có một bài đăng rất dài, tôi không muốn làm phức tạp thêm nữa. Và tôi sẽ chỉ làm sơ qua bề mặt của những gì có thể được thực hiện với các biểu thức chính quy.

Đơn giản nhất là tìm kiếm một từ cụ thể, chẳng hạn, giả sử chúng ta muốn tìm kiếm tất cả các dòng có chứa từ "Linux". Đây là cách dễ nhất, vì chúng ta chỉ phải viết:

grep 'Linux' regex

Và chúng ta có thể thấy kết quả:

ArchLinux: https://wiki.archlinux.org/ Arch Linux: 11-03-2002 Từ Linux Quy tắc.

Đây là ba dòng chứa từ "Linux", nếu chúng ta sử dụng thủ thuật màu sắc, nó sẽ xuất hiện được đánh dấu. Lưu ý rằng nó nhận dạng từ chúng ta đang tìm kiếm ngay cả khi nó là một phần của từ dài hơn như trong "ArchLinux". Tuy nhiên, nó không đánh dấu từ "linux" xuất hiện trong URL "https://wiki.archlinux.org/". Đó là bởi vì nó xuất hiện ở đó với chữ "l" viết thường và chúng tôi đã tìm kiếm nó bằng chữ hoa. Lệnh grep có các tùy chọn cho việc này, nhưng tôi sẽ không nói về chúng trong một bài báo về cụm từ thông dụng.

Với bài kiểm tra đơn giản này, chúng ta có thể rút ra kết luận đầu tiên:

  • Một ký tự bình thường được đưa vào một biểu thức chính quy sẽ khớp với chính nó.

Có nghĩa là nếu bạn đặt chữ cái "a", nó sẽ tìm ra chữ cái "a". Nó có vẻ hợp lý, phải không? 🙂

Bây giờ, giả sử chúng ta muốn tìm kiếm từ "CentO" theo sau bởi bất kỳ ký tự nào, nhưng chỉ một ký tự duy nhất. Đối với điều này, chúng tôi có thể sử dụng ký tự ".", Là ký tự đại diện khớp với bất kỳ ký tự nào, nhưng chỉ một:

grep 'CentO.' regex

Và kết quả là:

CentOS: http://wiki.centos.org/
Centos: 14-05-2004 03:32:38

Có nghĩa là nó bao gồm chữ "S" trong "CentOS" mặc dù trong một trường hợp, nó là chữ hoa và một chữ thường khác. Nếu bất kỳ nhân vật nào khác xuất hiện ở nơi đó, nó cũng sẽ bao gồm nó. Chúng tôi đã có quy tắc thứ hai:

  • Nhân vật "." khớp với bất kỳ ký tự nào.

Nó không còn tầm thường như trước nữa, nhưng với điều này thì chúng ta không thể làm được gì nhiều. Hãy đi xa hơn một chút. Giả sử chúng ta muốn tìm các dòng xuất hiện năm 2002 và 2004. Chúng có vẻ giống như hai tìm kiếm, nhưng chúng có thể được thực hiện cùng một lúc như sau:

grep '200[24]' regex

Có nghĩa là chúng ta muốn tìm số 200 theo sau là 2 hoặc 4. Và kết quả là:

ArchLinux: 11-03-2002
Gentoo: 31/03 /2002
CentOS: 14-05-2004 03:32:38
Ubuntu: 20/10/2004

Điều này đưa chúng ta đến quy tắc thứ ba:

  • Nhiều ký tự được đặt trong dấu ngoặc vuông khớp với bất kỳ ký tự nào trong dấu ngoặc vuông.

Các dấu ngoặc cho chơi nhiều hơn. chúng cũng có thể được sử dụng để loại trừ các ký tự. Ví dụ: giả sử chúng ta muốn tìm kiếm các trang web có ký tự ":" xuất hiện nhưng không được theo sau bởi "/". Lệnh sẽ như thế này:

grep ':[^/]' regex

Nó chỉ đơn giản là đặt một "^" làm ký tự đầu tiên bên trong dấu ngoặc. Bạn có thể đặt tất cả các ký tự bạn muốn bên dưới. Kết quả của lệnh cuối cùng này như sau:

ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Arch Linux: 11-03-2002 Gentoo: 31/03/2002 CentOs: 14-05-2004 03:32:38 Debian: 16/08/1993 Ubuntu: 20/10/2004

Bây giờ dấu ":" đằng sau tên bản phân phối được đánh dấu, nhưng không phải tên trong URL vì URL có "/" sau chúng.

  • Đặt ký tự "^" ở đầu dấu ngoặc sẽ khớp với bất kỳ ký tự nào ngoại trừ các ký tự khác trong ngoặc.

Một điều khác chúng ta có thể làm là chỉ định một loạt các ký tự. Ví dụ: để tìm kiếm bất kỳ số nào được theo sau bởi dấu "-", nó sẽ giống như sau:

grep '[0-9]-' regex

Với điều này, chúng tôi đang chỉ định một ký tự từ 0 đến 9 và sau đó là một dấu trừ. Hãy xem kết quả:

ArchLinux: 11-03-2002 CentO: 14-05-2004 03: 32: 38

Nhiều phạm vi có thể được chỉ định trong dấu ngoặc vuông để trộn đều các phạm vi với các ký tự đơn lẻ.

  • Việc đặt hai ký tự cách nhau bằng "-" trong dấu ngoặc sẽ khớp với bất kỳ ký tự nào trong phạm vi.

Bây giờ hãy xem liệu chúng ta có thể chọn phần đầu tiên của các URL hay không. Một cái cho biết "http" hoặc "https". Chúng chỉ khác nhau ở chữ "s" cuối cùng, vì vậy hãy làm như sau:

grep -E 'https?' regex

Dấu chấm hỏi được sử dụng để làm cho ký tự bên trái của nó là tùy chọn. Nhưng bây giờ chúng ta đã thêm tùy chọn -E vào lệnh. Điều này là do dấu hỏi là một tính năng của cụm từ thông dụng mở rộng. Cho đến nay, chúng tôi đang sử dụng các biểu thức chính quy cơ bản, vì vậy chúng tôi không cần phải đưa bất cứ thứ gì vào. Hãy xem kết quả:

ArchLinux: https: //wiki.archlinux.org/ Gentoo: https: //wiki.gentoo.org/wiki/Main_Page CentOS: http: //wiki.centos.org/ Debian: https: //wiki.debian.org/ Ubuntu: https: //wiki.ubuntu.com/

Vì vậy, chúng tôi đã có một quy tắc mới:

  • Một ký tự được theo sau bởi "?" khớp với ký tự đó hoặc không có ký tự nào. Điều này chỉ hợp lệ cho các biểu thức chính quy mở rộng.

Bây giờ chúng ta sẽ tìm kiếm hai từ hoàn toàn khác nhau. Hãy xem cách tìm các dòng có chứa cả từ "Debian" và "Ubuntu".

grep -E 'Debian|Ubuntu' regex

Với thanh dọc, chúng ta có thể tách hai hoặc nhiều biểu thức chính quy khác nhau và tìm các dòng phù hợp với bất kỳ biểu thức nào trong số chúng:

Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Debian: 16 / 08 / 1993
Ubuntu: 20 / 10 / 2004
  • Ký tự «|» dùng để tách một số biểu thức chính quy và kết hợp với bất kỳ biểu thức nào trong số chúng. Nó cũng dành riêng cho các biểu thức chính quy mở rộng.

Tiếp tục đi. Bây giờ chúng ta sẽ tìm kiếm từ "Linux", nhưng chỉ ở nơi nó không bị mắc kẹt với một từ khác ở bên trái. Chúng ta có thể làm như thế này:

grep '\

Ở đây, ký tự quan trọng là "<", nhưng nó cần phải được thoát ra bằng cách đặt "\" ở phía trước để grep hiểu nó là một ký tự đặc biệt. Kết quả là như sau:

Arch Linux: 11-03-2002 Từ Linux Quy tắc.

Bạn cũng có thể sử dụng "\>" để tìm kiếm các từ không nằm ngay cạnh nhau. Hãy đi với một ví dụ. Hãy thử lệnh này:

grep 'http\>' regex

Đầu ra nó tạo ra là:

CentOS: http: //wiki.centos.org/

"Http" xuất hiện, nhưng không xuất hiện "https", bởi vì trong "https" vẫn có một ký tự ở bên phải của "p" có thể là một phần của từ.

  • Các ký tự "<" và ">" tương ứng khớp với phần đầu và phần cuối của một từ. Các ký tự này phải được thoát ra để chúng không được hiểu là các ký tự theo nghĩa đen.

Chúng tôi đi với những thứ phức tạp hơn một chút. Ký tự "+" khớp với ký tự ở bên trái của nó, được lặp lại ít nhất một lần. Ký tự này chỉ có sẵn với các biểu thức chính quy mở rộng. Với nó, chúng ta có thể tìm kiếm, chẳng hạn như chuỗi một số số trong một hàng bắt đầu bằng ":".

grep -E ':[0-9]+' regex

Kết quả:

CentOs: 14-05-2004 03: 32: 38

Con số 38 cũng được đánh dấu vì nó cũng bắt đầu bằng ":".

  • Ký tự "+" khớp với ký tự ở bên trái của nó, được lặp lại ít nhất một lần.

Bạn cũng có thể kiểm soát số lần lặp lại bằng cách sử dụng "{" và "}". Ý tưởng là đặt trong dấu ngoặc nhọn một số cho biết chính xác số lần lặp lại mà chúng ta muốn. Bạn cũng có thể đặt một phạm vi. Chúng ta hãy xem ví dụ của hai trường hợp.

Trước tiên, chúng ta sẽ tìm tất cả các dãy gồm bốn chữ số:

grep '[0-9]\{4\}' regex

Lưu ý rằng dấu ngoặc nhọn phải được thoát nếu chúng ta đang sử dụng các biểu thức chính quy cơ bản, nhưng không phải nếu chúng ta sử dụng các biểu thức mở rộng. Với việc mở rộng nó sẽ như thế này:

grep -E '[0-9]{4}' regex

Và kết quả trong cả hai trường hợp sẽ là:

ArchLinux: 11-03-2002
Gentoo: 31/03 /2002
CentOS: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10 /2004
  • Các ký tự "{" và "}" với một số giữa chúng khớp với ký tự trước đó được lặp lại với số lần được chỉ định.

Bây giờ là ví dụ khác với dấu ngoặc nhọn. Giả sử chúng ta muốn tìm các từ có từ 3 đến 6 chữ cái viết thường. Chúng tôi có thể làm như sau:

grep '[a-z]\{3,6\}' regex

Và kết quả sẽ là:

- NSist de trangs wiki: ĐẾNrchLinux: https:/ /wiki.archlinux.org/ Gsau đó: https:/ /wiki.gentoo.org/wiki/Mkhông_Ptuổi
CentHệ điều hành: http:/ /wiki.centos.org/ Debian.: https:/ /wiki.debian.org/ HOẶC LÀngõ cụt: https:/ /wiki.ubuntu.com/ - FBạn nhớ de Phát hành: ĐẾNrch Linux: 11-03-2002 Gsau đó: 31/03/2002 CentOs: 14-05-2004 03:32:38
Debian.: 16/08/1993 Ungõ cụt: 20/10/2004 DNó là Linux Rulez.

Như bạn có thể thấy, trông không giống như những gì chúng tôi mong muốn. Đó là bởi vì biểu thức chính quy tìm các chữ cái trong các từ khác dài hơn. Hãy thử phiên bản khác này:

grep '\<[a-z]\{3,6\}\>' regex

Kết quả:

- Danh sách các trang wiki: ArchLinux: https:/ /wiki.archlinux.org/ Gentoo: https:/ /wiki.gentoo.org/wiki/ Main_Page CentOS: http:/ /wiki.centos.org/ Debian: https:/ /wiki.debian.org/ Ubuntu: https:/ /wiki.ubuntu.com/

Điều này đã trông giống như những gì chúng tôi muốn. Những gì chúng tôi đã làm là yêu cầu từ bắt đầu ngay trước chữ cái đầu tiên và kết thúc ngay sau chữ cái cuối cùng.

  • Các ký tự "{" và "}" có hai số giữa chúng được phân tách bằng dấu phẩy khớp với ký tự trước đó lặp lại số lần được chỉ ra bởi hai số.

Bây giờ chúng ta hãy xem xét một ký tự là số nguyên tố của "+". Nó là "*" và hoạt động của nó rất giống nhau chỉ là nó khớp với bất kỳ số ký tự nào kể cả số không. Nghĩa là, nó thực hiện tương tự như dấu "+" nhưng không yêu cầu ký tự bên trái của nó xuất hiện trong văn bản. Ví dụ: hãy thử tìm những địa chỉ bắt đầu trên wiki và kết thúc trên org:

grep 'wiki.*org' regex

Hãy xem kết quả:

ArchLinux: https: //wiki.archlinux.org/ Gentoo: https: //wiki.gentoo.org/ wiki / Main_Page CentOS: http: //wiki.centos.org/ Debian: https: //wiki.debian.org/

Hoàn hảo.

Bây giờ là nhân vật cuối cùng mà chúng ta sẽ thấy. Ký tự "\" được sử dụng để thoát ký tự sang bên phải của nó để làm mất ý nghĩa đặc biệt của nó. Ví dụ: Giả sử chúng ta muốn xác định vị trí các đường kết thúc tại một điểm. Điều đầu tiên có thể xảy ra với chúng tôi có thể là:

grep '.$' regex

Kết quả không phải là những gì chúng tôi đang tìm kiếm:

- Danh sách các trang wiki:
ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
- Ngày phát hành: Arch Linux: 11-03-2002
Gentoo: 31/03/2002
CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10/2004
Desde Linux quy tắc.

Điều này là do dấu "." khớp với bất kỳ thứ gì, sao cho biểu thức chính quy khớp với ký tự cuối cùng của mỗi dòng cho dù đó là ký tự nào. Giải pháp là:

grep '\.$' regex

Bây giờ kết quả là những gì chúng tôi muốn:

Desde Linux quy tắc.

Game Over

Mặc dù chủ đề của biểu thức chính quy rất phức tạp nên tôi sẽ đưa ra một loạt bài báo, tôi nghĩ rằng tôi đã khiến bạn đau đớn quá nhiều. Nếu bạn đã đến được, xin chúc mừng. Và nếu bạn đã đọc tất cả những điều này trong một lần ngồi, hãy uống aspirin hoặc thứ gì đó, vì nó không thể tốt.

Còn bây giờ thì chỉ có vậy thôi. Nếu bạn thích bài viết này, có thể bạn có thể viết bài khác. Trong thời gian chờ đợi, tôi khuyên bạn nên thử tất cả các biểu thức chính quy trong terminal để xem rõ cách chúng hoạt động. Và hãy nhớ: Chỉ Chuck Norris mới có thể phân tích cú pháp HTML bằng biểu thức chính quy.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Ezequiel dijo

    Cuộc sống của chúng ta sẽ ra sao nếu không có regex?
    Bài viết rất hữu ích nhưng tôi sẽ đọc từng chút một. Cảm ơn rất nhiều.

    1.    lục giác dijo

      Cảm ơn bạn đã bình luận. Tôi vẫn không tin rằng bài báo của tôi đã ra mắt. 🙂 Nó đã xuất hiện một số lỗi, nhưng tôi hy vọng nó hữu ích. 🙂

  2.   vảy dijo

    Cảm ơn youssssssss! ..

    Cách đây một thời gian tôi có nghiên cứu một chút về biểu thức chính quy .. .. Tôi cảm ơn bạn đã chỉ dạy .. và hướng dẫn từng bước để tìm hiểu từng biểu thức trong số chúng ..

    Tốt lắm! .. .. Tôi sẽ lấy viên aspirin đó .. ee

    1.    lục giác dijo

      Không có gì. Can đảm và các biểu thức chính quy không thể với bạn. 🙂

  3.   tanrax dijo

    Bài tuyệt vời! Bạn đã làm rất tốt. Tôi tự hỏi bạn đã mất bao nhiêu giờ 😀

    1.    lục giác dijo

      CƯỜI LỚN!! Câu hỏi đặt ra là: Tôi sẽ mất bao nhiêu giờ nếu tôi đã nói hết những gì tôi định nói? Vô hạn !! 🙂

  4.   Tammuz dijo

    một điều tôi đã không biết, bài viết tốt!

    1.    lục giác dijo

      Cảm ơn bạn. Rất hân hạnh được chia sẻ cùng bạn.

  5.   helena_ryuu dijo

    giải thích tuyệt vời. xin chúc mừng! thực sự hữu ích!

    1.    lục giác dijo

      Tôi rất vui vì bạn thấy nó hữu ích. Vì vậy, rất hân hạnh được viết.

  6.   chống dijo

    Điều này nên đi đến một nơi nào đó đặc biệt. Giống như Nổi bật nhưng có một tính hữu ích rất cụ thể. Khá hữu ích, mặc dù tôi muốn thấy nó được áp dụng cho Vim.

    1.    lục giác dijo

      Đó là một câu hỏi tự hỏi bản thân mình. Tôi có một vài bài viết khác về cụm từ thông dụng. Và tôi có thể nói về khí lực trong họ. Nó có một số khác biệt so với những gì tôi đã giải thích trong bài viết này. Đó là một vấn đề tiếp tục với nó. 🙂

  7.   Fernando dijo

    Tốt!

    Bài viết của bạn rất hay, thật tò mò, gần đây (ngay bây giờ) tôi đã xuất bản trên trang web của mình một mục mà tôi đã chuẩn bị trong vài ngày, nơi tôi đã thu thập danh sách các siêu ký tự cho các biểu thức chính quy và một số ví dụ. Và thật công bằng khi tham gia DesdeLinux và xem một mục về cùng chủ đề!

    Nếu đó là bất kỳ sự an ủi nào, tôi còn RẤT NHIỀU HƠN NỮA 😀

    Chắc chắn regex là một trong những thứ hữu ích nhất, tôi thường sử dụng chúng để cắt bớt đầu ra của các lệnh và giữ lại phần mà tôi quan tâm, sau đó tương tác với nó trong một tập lệnh bash chẳng hạn. Tôi cũng đã sử dụng chúng rất nhiều trong trường đại học, và chúng có tầm quan trọng thiết yếu trong việc xây dựng các trình biên dịch (theo định nghĩa của từ vựng và phân tích cú pháp). Nói tóm lại là cả một thế giới.

    Xin chào và làm việc rất tốt.

    1.    lục giác dijo

      Cám ơn rất nhiều.

      Tôi cũng thích bài viết của bạn. Nó ngắn gọn hơn của tôi. Nó có thể phục vụ như một tài liệu tham khảo nhanh chóng. Thật là trùng hợp khi chúng tôi đã viết chúng cùng một lúc. Bạn có thể thấy rằng mọi người quan tâm đến chủ đề này. 🙂

  8.   Pháo binh dijo

    Biểu thức chính quy cho hình nộm =), bây giờ tôi đã rõ ràng hơn, bằng một cách để có đầu ra với màu cho grep, là tạo một bí danh trong .bashrc alias grep = 'grep –color = always', trong trường hợp nó hoạt động với ai đó .

    Liên quan

    1.    lục giác dijo

      Thật. Đó là một cách khác để làm điều đó. Cảm ơn các đầu vào. 🙂

  9.   KZKG ^ Gaara dijo

    O_O… một phần đóng góp !!! O_O ...
    Cảm ơn bạn rất nhiều về bài viết, tôi đã chờ đợi một cái gì đó như thế một thời gian hahaha, tôi đã để mở nó để đọc nó ở nhà bình tĩnh không rắc rối để tập trung hahaha.

    Cảm ơn vì bài viết, tôi thực sự làm 😀

    1.    lục giác dijo

      Tôi biết bạn sẽ thích nó. CƯỜI LỚN!! Sự thật là còn thiếu nhiều thứ, nhưng tôi đã có sẵn phần thứ hai trong đầu. 🙂

  10.   Eliecer Tates dijo

    Bài văn hay quá, giá như hôm qua mình đọc thì giờ học hôm nay học sinh mình cũng dễ hơn nữa!

    1.    lục giác dijo

      CƯỜI LỚN!! Thật tệ là tôi đã đến muộn, nhưng rất vui vì nó hữu ích. 🙂

  11.   LeoToro dijo

    Cuối cùng !!!, bài đăng rất hay…. Cuối cùng tôi đã tìm thấy thứ giải thích rõ ràng về các biểu thức chính quy… ..

    1.    lục giác dijo

      Có rất nhiều thông tin trên mạng, nhưng để tìm được thông tin dễ hiểu thì càng khó. Tôi rất vui vì tôi đã lấp đầy khoảng trống đó. 🙂

      Chúc mừng.

  12.   Shakespeare Rhodes dijo

    Này, tôi cần trợ giúp, tôi phải thực hiện tìm kiếm trong / var / logs có định dạng: yymmdd và các nhật ký có dạng 130901.log -130901.log, tôi phải tìm kiếm tất cả các nhật ký từ ngày 1 tháng 11 đến ngày XNUMX tháng XNUMX Điều duy nhất tôi cố gắng làm là xóa toàn bộ tháng XNUMX nhưng tôi không biết làm thế nào để thực hiện chuỗi hoàn chỉnh:

    ví dụ: 1309 [0-3] trả lại cho tôi nhật ký trong khoảng thời gian từ ngày 1 tháng 30 đến ngày 1 tháng 11, nhưng tôi không biết làm cách nào để nhận các nhật ký đó từ ngày XNUMX đến ngày XNUMX tháng XNUMX.

    1.    lục giác dijo

      Để làm điều đó bằng cách sử dụng biểu thức chính quy hơi phức tạp. Tôi xảy ra với tôi rằng một cái gì đó như thế này có thể hoạt động:

      13(09[0-3]|10(0|1[01]))

      Nó là một biểu thức chính quy mở rộng. Bạn không nói bạn đang sử dụng công cụ nào nên tôi không thể cung cấp thêm thông tin chi tiết cho bạn.

      Dù sao, tôi nghĩ đây là trường hợp thay vì sử dụng biểu thức chính quy, tốt hơn là làm điều đó với find. Bạn có thể thử một cái gì đó như sau:

      tìm thấy. -newermt '01 sep '-a! -newermt '11 oct '-print

      Sự may mắn. Hy vọng điều này có thể giúp bạn.

  13.   khoai tây chiên dijo

    Xin chào! Trước hết, tôi muốn cảm ơn vì công việc của bạn vì trang này nằm trong "top 3" các trang Linux tốt nhất của tôi.
    Tôi đang thực hành và không biết tại sao một RegExp trên một số điện thoại không hoạt động với tôi và đó là tôi đã thiếu «-E» (mà tôi nhận ra nhờ bài đăng này).
    Tôi muốn hỏi bạn nếu bạn không biết bất kỳ trang web hoặc pdf tốt nào có các bài tập trên RegExp, mặc dù với một chút trí tưởng tượng, bạn có thể tự mình phát minh ra chúng.

    Xin chào, Pablo.

  14.   Đài hoa dijo

    Rất tốt, tôi vừa đọc hết nó, và vâng bây giờ tôi cần một viên aspirin 🙂

  15.   Giải Oscar dijo

    Lời giải thích tốt nhất mà tôi đã thấy về cụm từ thông dụng. Cảm ơn tác giả đã chia sẻ tác phẩm này.

    Một lời chào.

  16.   alexander dijo

    Tôi thực sự thích một lời giải thích rất hay