Dengan Terminal: Menggunakan ekspresi reguler

Salah satu hal yang selalu saya sukai dari terminal Linux adalah apa yang dapat Anda capai dengan menggunakan ekspresi reguler. Baik kita perlu mencari teks yang rumit atau menggantinya dengan yang lain, menggunakan ekspresi reguler dapat sangat menyederhanakan pekerjaan. Mari kita mulai dari awal:

PERINGATAN: Posting ini menyebalkan. Membaca posting ini sepanjang waktu dapat menyebabkan hilangnya kesadaran. Beristirahatlah di antara atau tanyakan kepada dokter atau apoteker Anda sebelum membaca keseluruhan posting.

Apa itu ekspresi reguler?

Ekspresi reguler adalah rangkaian karakter khusus yang memungkinkan kita mendeskripsikan teks yang ingin kita temukan. Misalnya, jika kita ingin mencari kata "linux", cukup memasukkan kata itu ke dalam program yang kita gunakan. Kata itu sendiri adalah ekspresi reguler. Sejauh ini kelihatannya sangat sederhana, tetapi bagaimana jika kita ingin mencari semua angka di file tertentu? Atau semua baris yang diawali dengan huruf kapital? Dalam kasus tersebut, Anda tidak dapat lagi meletakkan kata sederhana. Solusinya adalah dengan menggunakan ekspresi reguler.

Ekspresi reguler vs. pola file.

Sebelum kita membahas subjek ekspresi reguler, saya ingin menjernihkan kesalahpahaman umum tentang ekspresi reguler. Ekspresi reguler bukanlah apa yang kita tempatkan sebagai parameter dalam perintah seperti rm, cp, dll. Untuk merujuk ke berbagai file pada hard drive. Itu akan menjadi pola file. Ekspresi reguler, meskipun serupa karena menggunakan beberapa karakter umum, namun berbeda. Pola file diaktifkan terhadap file di hard disk dan mengembalikan pola yang sepenuhnya cocok dengan pola, sedangkan ekspresi reguler diaktifkan terhadap teks dan mengembalikan baris yang berisi teks yang dicari. Misalnya, ekspresi reguler yang sesuai dengan pola *.* itu akan menjadi sesuatu seperti ^.*\..*$

Jenis ekspresi reguler.

Tidak semua program menggunakan ekspresi reguler yang sama. Tidak kurang. Ada beberapa jenis ekspresi reguler yang kurang lebih standar, tetapi ada program yang sedikit mengubah sintaks, menyertakan ekstensinya sendiri atau bahkan menggunakan karakter yang sama sekali berbeda. Oleh karena itu, ketika Anda ingin menggunakan ekspresi reguler dengan program yang tidak Anda kenal dengan baik, hal pertama yang harus dilakukan adalah melihat manual atau dokumentasi program untuk melihat seperti apa ekspresi reguler yang dikenali.

Pertama, ada dua jenis ekspresi reguler utama, yang terkandung dalam standar POSIX, yang digunakan alat Linux. Mereka adalah ekspresi reguler dasar dan diperpanjang. Banyak perintah yang berfungsi dengan ekspresi reguler, seperti grep atau sed, memungkinkan Anda menggunakan kedua jenis ini. Saya akan membicarakannya di bawah. Ada juga ekspresi reguler gaya PERL, lalu ada program seperti vim atau emacs yang menggunakan varian ini. Bergantung pada apa yang ingin kita lakukan, mungkin lebih tepat untuk menggunakan salah satunya.

Menguji ekspresi reguler.

Sintaks ekspresi reguler sama sekali tidak sepele. Saat kita harus menulis ekspresi reguler yang rumit, kita akan berada di depan serangkaian karakter khusus yang tidak mungkin dipahami pada pandangan pertama, jadi untuk mempelajari cara menggunakannya, penting untuk memiliki cara melakukan semua pengujian yang kita inginkan dan lihat. hasilnya mudah. Itulah mengapa saya sekarang akan meletakkan beberapa perintah yang dengannya kita dapat melakukan tes dan bereksperimen semua yang kita butuhkan sampai kita memiliki ekspresi reguler yang didominasi.

Yang pertama adalah perintah grep. Ini adalah perintah yang paling sering kita gunakan untuk melakukan pencarian. Sintaksnya adalah sebagai berikut:

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

Saya sarankan untuk selalu meletakkan ekspresi reguler dalam tanda kutip tunggal sehingga shell tidak dapat melakukannya. Cara pertama adalah menemukan ekspresi reguler dalam file. Yang kedua memungkinkan pemfilteran output dari sebuah perintah melalui ekspresi reguler. Secara default, grep menggunakan ekspresi reguler dasar. Opsi -E adalah untuk menggunakan ekspresi reguler yang diperluas.

Trik yang dapat membantu kita melihat cara kerja ekspresi reguler adalah dengan mengaktifkan penggunaan warna dalam perintah grep. Dengan begitu, bagian teks yang cocok dengan ekspresi reguler yang kita gunakan akan disorot. Untuk mengaktifkan warna dalam perintah grep, cukup pastikan bahwa variabel lingkungan GREP_OPTIONS mengandung nilai --color, yang dapat dilakukan dengan perintah ini:

GREP_OPTIONS=--color

Kita bisa meletakkannya di .bashrc agar selalu diaktifkan.

Cara lain untuk menggunakan ekspresi reguler adalah dengan menggunakan perintah sed. Ini lebih cocok untuk mengganti teks, tetapi juga bisa digunakan untuk pencarian. Sintaksnya akan seperti ini:

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

Perintah sed juga menggunakan ekspresi reguler dasar secara default, Anda dapat menggunakan ekspresi reguler yang diperluas dengan opsi -r.

Perintah lain yang juga ingin saya beri nama adalah awk. Perintah ini dapat digunakan untuk banyak hal, karena memungkinkan Anda menulis skrip dalam bahasa pemrograman Anda sendiri. Jika yang kita inginkan adalah menemukan ekspresi reguler dalam file atau output dari sebuah perintah, cara menggunakannya adalah sebagai berikut:

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

Perintah ini selalu menggunakan ekspresi reguler yang diperluas.

Untuk melakukan pengujian, kami juga membutuhkan teks yang akan berfungsi sebagai contoh untuk mencarinya. Kita bisa menggunakan teks berikut:

- 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.

Ini adalah teks yang akan saya gunakan untuk contoh-contoh sisa posting, jadi saya sarankan Anda menyalinnya ke dalam sebuah file agar berguna dari terminal. Anda dapat memasukkan nama yang Anda inginkan. Saya menyebutnya regex.

Pelajaran awal.

Sekarang kita memiliki semua yang kita butuhkan untuk mulai menguji ekspresi reguler. Ayo pergi sedikit demi sedikit. Saya akan memberikan beberapa contoh pencarian dengan ekspresi reguler di mana saya akan menjelaskan untuk apa setiap karakter itu. Itu bukan contoh yang sangat baik, tetapi karena saya akan memiliki posting yang sangat panjang, saya tidak ingin memperumitnya lagi. Dan saya hanya akan menggores permukaan dari apa yang bisa dilakukan dengan ekspresi reguler.

Yang paling sederhana dari semuanya adalah mencari kata tertentu, misalnya kita ingin mencari semua baris yang mengandung kata "Linux". Ini yang paling mudah, karena kita hanya perlu menulis:

grep 'Linux' regex

Dan kita bisa lihat hasilnya:

LengkunganLinux: https://wiki.archlinux.org/ Arch Linux: 11-03-2002 Dari Linux aturan.

Ini adalah tiga baris yang berisi kata "Linux" yang, jika kita telah menggunakan trik warna, akan muncul disorot. Perhatikan bahwa ia mengenali kata yang kita cari meskipun itu adalah bagian dari kata yang lebih panjang seperti di "ArchLinux". Namun, ini tidak menyoroti kata "linux" yang muncul di URL "https://wiki.archlinux.org/". Itu karena itu muncul di sana dengan huruf kecil "l" dan kita telah mencarinya dalam huruf besar. Perintah grep memiliki opsi untuk ini, tetapi saya tidak akan membahasnya dalam artikel tentang ekspresi reguler.

Dengan tes sederhana ini kita bisa menarik kesimpulan pertama:

  • Karakter normal yang dimasukkan ke dalam persamaan reguler cocok dengan dirinya sendiri.

Artinya, jika Anda meletakkan huruf "a" maka akan mencari huruf "a". Sepertinya logis, bukan? 🙂

Sekarang misalkan kita ingin mencari kata "CentO" diikuti dengan karakter apa saja, tetapi hanya satu karakter. Untuk ini kita bisa menggunakan karakter ".", Yang merupakan wildcard yang cocok dengan karakter apapun, tapi hanya satu:

grep 'CentO.' regex

Dan hasilnya adalah:

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

Yang berarti bahwa ia menyertakan "S" dalam "CentOS" meskipun dalam satu kasus adalah huruf besar dan dalam huruf kecil lainnya. Jika ada karakter lain yang muncul di tempat itu, itu juga akan memasukkannya. Kami sudah memiliki aturan kedua:

  • Karakter "." cocok dengan karakter apapun.

Tidak lagi sepele seperti kelihatannya, tapi dengan ini kita tidak bisa berbuat banyak. Mari melangkah lebih jauh. Misalkan kita ingin mencari baris di mana tahun 2002 dan 2004 muncul. Mereka tampak seperti dua pencarian, tapi bisa dilakukan sekaligus seperti ini:

grep '200[24]' regex

Artinya kita ingin mencari angka 200 diikuti dengan 2 atau 4. Dan hasilnya adalah ini:

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

Yang membawa kita ke aturan ketiga:

  • Beberapa karakter yang diapit tanda kurung cocok dengan salah satu karakter di dalam tanda kurung.

Tanda kurung memberi lebih banyak permainan. mereka juga dapat digunakan untuk mengecualikan karakter. Misalnya, kita ingin mencari situs di mana karakter ":" muncul, tetapi tidak diikuti oleh "/". Perintahnya akan seperti ini:

grep ':[^/]' regex

Ini hanya masalah menempatkan "^" sebagai karakter pertama di dalam tanda kurung. Anda dapat meletakkan semua karakter yang Anda inginkan di bawah ini. Hasil dari perintah terakhir ini adalah sebagai berikut:

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

Sekarang ":" di belakang nama distro disorot, tetapi bukan yang ada di URL karena URL memiliki "/" setelahnya.

  • Menempatkan karakter "^" di awal tanda kurung cocok dengan semua karakter kecuali karakter lain dalam tanda kurung.

Hal lain yang dapat kita lakukan adalah menentukan rentang karakter. Misalnya, untuk mencari nomor apa pun yang diikuti dengan "-" akan terlihat seperti ini:

grep '[0-9]-' regex

Dengan ini kami menentukan karakter antara 0 dan 9 dan kemudian tanda minus. Mari kita lihat hasilnya:

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

Beberapa rentang dapat ditentukan dalam tanda kurung untuk bahkan mencampur rentang dengan karakter tunggal.

  • Menempatkan dua karakter yang dipisahkan oleh "-" di dalam tanda kurung cocok dengan karakter apa pun dalam rentang.

Mari kita lihat sekarang apakah kita dapat memilih bagian pertama dari URL. Yang bertuliskan "http" atau "https". Mereka hanya berbeda di "s" akhir, jadi lakukan sebagai berikut:

grep -E 'https?' regex

Tanda tanya digunakan untuk membuat karakter di sebelah kirinya opsional. Tapi sekarang kami telah menambahkan opsi -E ke perintah. Ini karena interogasi adalah fitur ekspresi reguler yang diperluas. Sejauh ini kami menggunakan ekspresi reguler dasar, jadi kami tidak perlu memasukkan apa pun. Mari kita lihat hasilnya:

Linux Agung: 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/

Jadi kami sudah memiliki aturan baru:

  • Karakter yang diikuti dengan "?" cocok dengan karakter itu atau tidak sama sekali. Ini hanya berlaku untuk ekspresi reguler yang diperluas.

Sekarang kita akan mencari dua kata yang sangat berbeda. Mari kita lihat bagaimana menemukan baris yang mengandung kata "Debian" dan "Ubuntu".

grep -E 'Debian|Ubuntu' regex

Dengan bilah vertikal kita dapat memisahkan dua atau lebih ekspresi reguler yang berbeda dan menemukan garis yang cocok dengan salah satunya:

Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Debian: 16 / 08 / 1993
Ubuntu: 20 / 10 / 2004
  • Karakter «|» berfungsi untuk memisahkan beberapa ekspresi reguler dan kecocokan dengan salah satunya. Ini juga khusus untuk ekspresi reguler yang diperluas.

Ayo lanjutkan. Sekarang kita akan mencari kata "Linux", tetapi hanya di tempat yang tidak terpaku pada kata lain di sebelah kiri. Kita bisa melakukannya seperti ini:

grep '\

Di sini karakter penting adalah "<", tetapi perlu diloloskan dengan meletakkan "\" di depannya sehingga grep menafsirkannya sebagai karakter khusus. Hasilnya adalah sebagai berikut:

Lengkungan Linux: 11-03-2002 Dari Linux aturan.

Anda juga dapat menggunakan "\>" untuk mencari kata yang tidak bersebelahan. Mari kita lihat sebuah contoh. Mari coba perintah ini:

grep 'http\>' regex

Output yang dihasilkannya adalah ini:

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

"Http" keluar, tetapi bukan "https", karena di "https" masih ada karakter di sebelah kanan "p" yang bisa menjadi bagian dari sebuah kata.

  • Karakter "<" dan ">" masing-masing cocok dengan awal dan akhir kata. Karakter ini harus di-escape agar tidak ditafsirkan sebagai karakter literal.

Kami pergi dengan hal-hal yang sedikit lebih rumit. Karakter "+" cocok dengan karakter di sebelah kirinya, diulang setidaknya sekali. Karakter ini hanya tersedia dengan ekspresi reguler yang diperluas. Dengan itu kita dapat menemukan, misalnya, urutan beberapa nomor dalam satu baris yang dimulai dengan ":".

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

Hasil:

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

Angka 38 juga disorot karena juga diawali dengan ":".

  • Karakter "+" cocok dengan karakter di sebelah kirinya, diulang setidaknya sekali.

Anda juga dapat mengontrol jumlah pengulangan menggunakan "{" dan "}". Idenya adalah untuk memasukkan angka ke dalam kurung yang menunjukkan jumlah pasti pengulangan yang kita inginkan. Anda juga bisa membuat rentang. Mari kita lihat contoh dari dua kasus tersebut.

Pertama kita akan menemukan semua urutan empat digit yang ada:

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

Perhatikan bahwa kurung kurawal harus di-escape jika kita menggunakan ekspresi reguler dasar, tetapi tidak jika kita menggunakan ekspresi yang diperpanjang. Dengan diperpanjang akan menjadi seperti ini:

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

Dan hasilnya dalam kedua kasus tersebut adalah:

ArchLinux: 11-03-2002
Gentoo: 31/03 /2002
CentO: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10 /2004
  • Karakter "{" dan "}" dengan angka di antaranya cocok dengan karakter sebelumnya yang diulang beberapa kali.

Sekarang contoh lainnya dengan kawat gigi. Misalkan kita ingin mencari kata yang memiliki antara 3 dan 6 huruf kecil. Kami dapat melakukan hal berikut:

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

Dan hasilnya akan seperti ini:

- List de halamans wiki: UNTUKrchLmasuk: https:/ /wiki.archlinux.org/ Gkemudian: https:/ /wiki.gentoo.org/wiki/Main_Pusia
CentOS: http:/ /wiki.CentOS.org/ Debian: https:/ /wiki.debian.org/ ATAUjalan buntu: https:/ /wiki.ubuntu.com/ - FAnda lewatkan de Rilis: UNTUKrch Lmasuk: 11-03-2002 Gkemudian: 31/03/2002 CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993 Ujalan buntu: 20/10/2004 Dini Lmasuk Rulez.

Yang, seperti yang Anda lihat, tidak terlihat seperti yang kami inginkan. Itu karena ekspresi reguler menemukan huruf dalam kata lain yang lebih panjang. Ayo coba versi lain ini:

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

Hasil:

- Daftar halaman 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/

Ini sudah terlihat seperti yang kita inginkan. Apa yang telah kami lakukan adalah mengharuskan kata tersebut dimulai tepat sebelum huruf pertama dan diakhiri tepat setelah huruf terakhir.

  • Karakter "{" dan "}" dengan dua angka di antaranya dipisahkan oleh koma yang cocok dengan karakter sebelumnya yang diulang beberapa kali yang ditunjukkan oleh dua angka tersebut.

Sekarang mari kita lihat karakter yang merupakan bilangan prima dari "+". Ini adalah "*" dan operasinya sangat mirip hanya saja ia cocok dengan sejumlah karakter termasuk nol. Artinya, ia melakukan hal yang sama dengan "+" tetapi tidak memerlukan karakter di sebelah kirinya untuk muncul dalam teks. Misalnya, mari kita coba mencari alamat yang dimulai di wiki dan diakhiri dengan org:

grep 'wiki.*org' regex

Mari kita lihat hasilnya:

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

Sempurna.

Sekarang karakter terakhir yang akan kita lihat. Karakter "\" digunakan untuk melepaskan karakter ke kanan sehingga kehilangan arti khususnya. Misalnya: Misalkan kita ingin mencari garis yang berakhiran sebuah titik. Hal pertama yang mungkin terpikir oleh kita bisa jadi ini:

grep '.$' regex

Hasilnya bukanlah yang kita cari:

- Daftar halaman 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/
- Tanggal rilis: 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 aturan.

Ini karena "." cocok dengan apa pun, sehingga persamaan reguler cocok dengan karakter terakhir dari setiap baris apa pun itu. Solusinya begini:

grep '\.$' regex

Sekarang hasilnya adalah yang kita inginkan:

Desde Linux aturan.

Game Over

Meskipun subjek ekspresi reguler begitu kompleks yang akan saya berikan untuk serangkaian artikel, saya rasa saya telah memberi Anda rasa sakit yang cukup. Jika sudah berhasil sampai, selamat. Dan jika Anda telah membaca semua ini sekaligus, minumlah aspirin atau sesuatu, karena itu tidak baik.

Untuk sekarang itu saja. Jika Anda menyukai artikel ini, mungkin Anda bisa menulis yang lain. Sementara itu, saya menyarankan Anda untuk mencoba semua ekspresi reguler di terminal untuk melihat dengan jelas cara kerjanya. Dan ingat: Hanya Chuck Norris yang dapat mengurai HTML menggunakan ekspresi reguler.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Yehezkiel dijo

    Akan seperti apa hidup kita tanpa regex?
    Artikel ini sangat bermanfaat, tapi saya akan membacanya sedikit demi sedikit. Terima kasih banyak.

    1.    hexborg dijo

      Terima kasih atas komentarnya Saya masih tidak percaya artikel saya telah keluar. 🙂 Ini telah keluar dengan beberapa kesalahan, tapi saya harap ini berguna. 🙂

  2.   skalabur dijo

    Terima kasih youssssssss! ..

    Beberapa waktu yang lalu saya harus belajar sedikit tentang ekspresi reguler .. ..Saya terima kasih telah mengajar .. dan panduan langkah demi langkah untuk mempelajarinya masing-masing ..

    Bagus sekali! .. ..Aku akan mengambil aspirin itu .. ee

    1.    hexborg dijo

      Sama-sama. Keberanian dan ekspresi reguler tidak bisa bersama Anda. 🙂

  3.   tanrak dijo

    Posting yang fantastis! Kerja bagus. Aku ingin tahu berapa jam yang kamu butuhkan 😀

    1.    hexborg dijo

      LOL !! Pertanyaannya adalah: Berapa jam yang dibutuhkan saya jika saya mengatakan semua yang ingin saya katakan? Tak terbatas !! 🙂

  4.   Tammuz dijo

    satu hal yang saya tidak tahu, artikel bagus!

    1.    hexborg dijo

      Terima kasih. Senang sekali bisa berbagi dengan Anda.

  5.   helena_ryuu dijo

    penjelasan yang bagus. selamat! sangat berguna!

    1.    hexborg dijo

      Saya senang Anda menganggapnya berguna. Jadi menulis itu menyenangkan

  6.   anti dijo

    Ini harus pergi ke suatu tempat yang istimewa. Seperti Featured namun memiliki kegunaan yang sangat spesifik. Cukup berguna, meskipun saya ingin melihatnya diterapkan pada Vim.

    1.    hexborg dijo

      Itu adalah pertanyaan yang menanyakan diri saya sendiri. Saya memiliki beberapa artikel lagi tentang ekspresi reguler. Dan saya bisa berbicara tentang vim di dalamnya. Ini memiliki beberapa perbedaan dari apa yang saya jelaskan di artikel ini. Ini masalah melanjutkannya. 🙂

  7.   Fernando dijo

    Bagus!

    Artikel Anda sangat bagus, membuat penasaran, baru-baru ini (saat ini) saya telah menerbitkan di situs web saya sebuah entri yang telah saya persiapkan selama beberapa hari di mana saya telah mengumpulkan daftar metakarakter untuk ekspresi reguler dan beberapa contoh. Dan sudah adil untuk masuk DesdeLinux dan lihat entri tentang topik yang sama!

    Jika ada penghiburan, milik saya JAUH LEBIH PUSSY 😀

    Tentu regex adalah salah satu hal yang paling berguna, saya biasanya menggunakannya untuk memangkas keluaran perintah dan menyimpan bagian yang menarik minat saya, dan kemudian berinteraksi dengannya dalam skrip bash, misalnya. Saya juga telah banyak menggunakannya di universitas, dan mereka sangat penting dalam pembangunan kompiler (dalam definisi leksikografik dan parser). Singkatnya, seluruh dunia.

    Salam dan kerja yang sangat bagus.

    1.    hexborg dijo

      Terima kasih banyak.

      Saya juga menyukai artikel Anda. Ini lebih ringkas dari saya. Ini bisa berfungsi sebagai referensi cepat. Suatu kebetulan bahwa kami telah menulisnya pada waktu yang bersamaan. Anda dapat melihat bahwa orang-orang tertarik dengan subjek tersebut. 🙂

  8.   Elery dijo

    Ekspresi reguler untuk dummies =), sekarang lebih jelas bagi saya, salah satu cara untuk memiliki keluaran dengan warna untuk grep, adalah dengan membuat alias dalam .bashrc alias grep = 'grep –color = selalu', dalam kasus itu berhasil untuk seseorang.

    salam

    1.    hexborg dijo

      Benar. Itu adalah cara lain untuk melakukannya. Terima kasih atas masukannya. 🙂

  9.   KZKG ^ Gaara dijo

    O_O… sebagian kontribusi !!! O_O ...
    Terima kasih banyak atas postingannya, saya menunggu sesuatu seperti itu sebentar haha, saya biarkan terbuka untuk membacanya dengan tenang di rumah tanpa repot berkonsentrasi haha.

    Terima kasih untuk artikelnya, saya benar-benar 😀

    1.    hexborg dijo

      Saya tahu Anda akan menyukainya. LOL !! Yang benar adalah banyak hal yang hilang, tapi saya sudah memikirkan bagian kedua. 🙂

  10.   Eliécer Tates dijo

    Artikel yang bagus, seandainya saya membacanya kemarin, kelas yang saya berikan hari ini akan menjadi lebih mudah bagi siswa saya!

    1.    hexborg dijo

      LOL !! Sayang sekali saya terlambat, tapi senang itu membantu. 🙂

  11.   LeoToro dijo

    Akhirnya !!!, posnya sangat bagus… akhirnya saya menemukan sesuatu yang menjelaskan ekspresi reguler dengan jelas… ..

    1.    hexborg dijo

      Ada banyak informasi di luar sana, tetapi lebih sulit untuk menemukan sesuatu yang mudah dimengerti. Saya senang saya mengisi celah itu. 🙂

      Salam.

  12.   Shakespeare Rhodes dijo

    Hai saya butuh bantuan, saya harus melakukan pencarian di / var / logs dengan format: yymmdd, dan lognya seperti ini 130901.log -130901.log, saya harus mencari semua yang ada antara 1 September hingga Oktober 11, Satu-satunya hal yang berhasil saya lakukan adalah menghapus semua bulan September tetapi saya tidak tahu cara melakukan rantai lengkap:

    mis .: 1309 [0-3] mengembalikan log kepada saya antara tanggal 1 hingga 30 September, tetapi saya tidak tahu cara mendapatkan juga dalam rantai yang sama dari 1 hingga 11 Oktober.

    1.    hexborg dijo

      Untuk melakukannya menggunakan ekspresi reguler agak sedikit rumit. Terpikir oleh saya bahwa sesuatu seperti ini mungkin berhasil:

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

      Ini adalah ekspresi reguler yang diperluas. Anda tidak mengatakan alat mana yang Anda gunakan, jadi saya tidak bisa memberi Anda detail lebih lanjut.

      Bagaimanapun saya pikir ini adalah kasus daripada menggunakan ekspresi reguler, lebih baik melakukannya dengan find. Anda dapat mencoba sesuatu seperti ini:

      Temukan. -newermt '01 sep '-a! -newermt '11 oct '-cetak

      Keberuntungan. Semoga ini bisa membantu Anda.

  13.   hadiah dijo

    Halo! Pertama-tama, saya ingin berterima kasih atas pekerjaan Anda karena halaman ini termasuk dalam "3 teratas" situs Linux terbaik saya.
    Saya sedang berlatih dan saya tidak tahu mengapa RegExp di nomor telepon tidak bekerja untuk saya dan saya kehilangan "-E" (yang saya sadari berkat posting ini).
    Saya ingin bertanya kepada Anda jika Anda tidak tahu pdf atau situs yang bagus di mana ada latihan di RegExp, meskipun dengan sedikit imajinasi Anda dapat berlatih menciptakannya sendiri.

    Salam, Pablo.

  14.   caly dijo

    Bagus sekali, saya baru saja membaca semuanya, dan ya sekarang saya butuh aspirin 🙂

  15.   Óscar dijo

    Penjelasan terbaik yang pernah saya lihat tentang ekspresi reguler. Terima kasih saya kepada penulis untuk berbagi pekerjaan ini.

    Sebuah ucapan.

  16.   alexander dijo

    Saya sangat menyukai penjelasan yang sangat bagus