Dengan Terminal: Menggunakan ungkapan biasa

Salah satu perkara yang selalu saya gemari mengenai terminal Linux adalah apa yang dapat anda capai dengan menggunakan ungkapan biasa. Sama ada kita perlu mencari teks yang rumit atau menggantinya dengan yang lain, menggunakan ungkapan biasa dapat mempermudah pekerjaan. Mari bermula pada awal:

AMARAN: Catatan ini adalah kesakitan di pantat. Membaca catatan ini sepanjang masa boleh menyebabkan kehilangan kesedaran. Rehat sebentar atau tanya doktor atau ahli farmasi anda sebelum membaca keseluruhan catatan.

Apakah ungkapan biasa?

Ungkapan biasa adalah rangkaian watak khas yang membolehkan kita menerangkan teks yang ingin kita cari. Contohnya, jika kita ingin mencari kata "linux", cukup memasukkan perkataan itu dalam program yang kita gunakan. Perkataan itu sendiri adalah ungkapan biasa. Sejauh ini nampaknya sangat mudah, tetapi bagaimana jika kita ingin mencari semua nombor dalam fail tertentu? Atau semua baris yang bermula dengan huruf besar? Dalam kes-kes itu, anda tidak lagi boleh menggunakan kata mudah. Penyelesaiannya adalah dengan menggunakan ungkapan biasa.

Ungkapan biasa vs corak fail.

Sebelum kita memasuki subjek ungkapan biasa, saya ingin menyelesaikan salah faham umum tentang ungkapan biasa. Ungkapan biasa bukan seperti yang kita masukkan sebagai parameter dalam perintah seperti rm, cp, dll. Untuk merujuk kepada pelbagai fail pada cakera keras. Itu akan menjadi corak fail. Ungkapan biasa, walaupun serupa kerana mereka menggunakan beberapa watak biasa, berbeza. Corak fail dilancarkan ke atas fail di cakera keras dan mengembalikan yang sesuai dengan corak, sementara ungkapan biasa ditembakkan terhadap teks dan mengembalikan garis yang berisi teks yang dicari. Contohnya, ungkapan biasa yang sesuai dengan corak *.* ia akan menjadi seperti ^.*\..*$

Jenis ungkapan biasa.

Tidak semua program menggunakan ungkapan biasa yang sama. Tidak kurang juga. Terdapat beberapa jenis ungkapan biasa yang lebih kurang, tetapi ada program yang sedikit mengubah sintaks, termasuk peluasannya sendiri, atau bahkan menggunakan watak yang sama sekali berbeza. Oleh itu, apabila anda ingin menggunakan ungkapan biasa dengan program yang tidak anda ketahui dengan baik, perkara pertama yang perlu dilakukan adalah melihat manual atau dokumentasi program untuk melihat seperti apa ungkapan biasa yang dikenalinya.

Pertama, terdapat dua jenis ungkapan biasa, yang terkandung dalam standard POSIX, yang digunakan oleh alat Linux. Itu adalah ungkapan biasa yang asas dan diperluas. Sebilangan besar perintah yang berfungsi dengan ungkapan biasa, seperti grep atau sed, membolehkan anda menggunakan dua jenis ini. Saya akan bercakap mengenai mereka di bawah. Terdapat juga ungkapan biasa gaya PERL, dan kemudian ada program seperti vim atau emac yang menggunakan varian ini. Bergantung pada apa yang ingin kita lakukan, mungkin lebih sesuai untuk menggunakan satu atau yang lain.

Menguji ungkapan biasa.

Sintaks ungkapan biasa tidak remeh. Apabila kita harus menulis ungkapan biasa yang rumit, kita akan berada di hadapan rentetan watak khas yang mustahil untuk difahami pada pandangan pertama, jadi untuk belajar menggunakannya, sangat penting untuk memiliki cara untuk melakukan semua ujian yang kita inginkan dan melihat hasilnya dengan mudah. Itulah sebabnya saya sekarang akan meletakkan beberapa perintah yang boleh kita lakukan ujian dan bereksperimen semua yang kita perlukan sehingga kita dapat menguasai ungkapan biasa.

Yang pertama adalah perintah grep. Ini adalah arahan yang paling sering kita gunakan untuk melakukan carian. Sintaksnya adalah seperti berikut:

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

Saya mengesyorkan agar selalu meletakkan ungkapan biasa dalam tanda petik tunggal agar cengkerang tidak sesuai. Cara pertama adalah mencari ungkapan biasa dalam fail. Yang kedua membolehkan menyaring output perintah melalui ungkapan biasa. Secara lalai, grep menggunakan ungkapan biasa biasa. Pilihan -E adalah untuk menggunakan ungkapan biasa yang diperpanjang.

Satu muslihat yang dapat membantu kita melihat bagaimana ungkapan biasa berfungsi untuk membolehkan penggunaan warna dalam perintah grep. Dengan cara itu, bahagian teks yang sesuai dengan ungkapan biasa yang kita gunakan akan diserlahkan. Untuk mengaktifkan warna dalam perintah grep, pastikan bahawa persekitaran berubah GREP_OPTIONS mengandungi nilai --color, yang boleh dilakukan dengan arahan ini:

GREP_OPTIONS=--color

Kita boleh memasukkannya ke dalam .bashrc agar sentiasa diaktifkan.

Cara lain untuk menggunakan ungkapan biasa adalah dengan menggunakan perintah sed. Ini lebih sesuai untuk menggantikan teks, tetapi juga boleh digunakan untuk mencari. Sintaks untuknya akan seperti ini:

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

Perintah sed juga menggunakan ungkapan biasa biasa secara lalai, anda boleh menggunakan ungkapan biasa lanjutan dengan pilihan -r.

Satu lagi arahan yang saya mahu namakan adalah awk. Perintah ini dapat digunakan untuk banyak hal, kerana ini memungkinkan anda menulis skrip dalam bahasa pengaturcaraan anda sendiri. Sekiranya yang kita mahukan adalah mencari ungkapan biasa dalam file atau output perintah, cara menggunakannya adalah sebagai berikut:

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

Perintah ini selalu menggunakan ungkapan biasa yang diperpanjang.

Untuk melakukan ujian kami, kami juga memerlukan teks yang akan menjadi contoh untuk mencarinya. Kita boleh 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 di sisa catatan, jadi saya mengesyorkan agar anda menyalinnya ke dalam fail agar mudah digunakan dari terminal. Anda boleh meletakkan nama yang anda mahukan. Saya telah memanggilnya regex.

Pelajaran permulaan.

Sekarang kita mempunyai semua yang kita perlukan untuk mula menguji ungkapan biasa. Mari pergi sedikit demi sedikit. Saya akan meletakkan beberapa contoh carian dengan ungkapan biasa di mana saya akan menerangkan maksud setiap watak. Itu bukan contoh yang baik, tetapi kerana saya akan mempunyai catatan yang sangat panjang, saya tidak mahu menyulitkannya lagi. Dan saya hanya akan menggaru permukaan apa yang dapat dilakukan dengan ungkapan biasa.

Yang paling mudah adalah mencari kata tertentu, misalnya, andaikan kita ingin mencari semua baris yang mengandungi perkataan "Linux". Ini adalah yang paling mudah, kerana kita hanya perlu menulis:

grep 'Linux' regex

Dan kita dapat melihat hasilnya:

ArchLinux: https://wiki.archlinux.org/ Arch Linux: 11-03-2002 Dari Linux Rulez.

Ini adalah tiga baris yang mengandung kata "Linux" yang, jika kita telah menggunakan trik warna, akan tampak disorot. Perhatikan bahawa ia mengenali kata yang kita cari walaupun ia adalah sebahagian daripada kata yang lebih panjang seperti dalam "ArchLinux". Walau bagaimanapun, ia tidak menonjolkan kata "linux" yang muncul di URL "https://wiki.archlinux.org/". Itu kerana ia muncul di sana dengan huruf kecil "l" dan kami telah mencarinya dengan huruf besar. Perintah grep mempunyai pilihan untuk ini, tetapi saya tidak akan membincangkannya dalam artikel mengenai ungkapan biasa.

Dengan ujian mudah ini kita dapat membuat kesimpulan pertama:

  • Watak normal yang dimasukkan ke dalam ungkapan biasa sesuai dengan dirinya sendiri.

Yang bermaksud bahawa jika anda meletakkan huruf "a" maka akan mencari huruf "a". Nampaknya logik, bukan? 🙂

Sekarang anggap kita mahu mencari perkataan "CentO" diikuti oleh watak apa pun, tetapi hanya satu watak. Untuk ini kita boleh menggunakan watak ".", Yang merupakan wildcard yang sesuai dengan mana-mana watak, tetapi hanya satu:

grep 'CentO.' regex

Dan hasilnya adalah:

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

Yang bermaksud bahawa ia termasuk "S" dalam "CentOS" walaupun dalam satu kes itu huruf besar dan huruf kecil yang lain. Sekiranya watak lain muncul di tempat itu, ia juga akan memasukkannya. Kami sudah mempunyai peraturan kedua:

  • Watak "." sepadan dengan watak apa pun.

Ia tidak lagi sepele seperti yang terlihat, tetapi dengan ini kita tidak dapat melakukan banyak hal. Mari pergi lebih jauh. Anggaplah bahawa kita ingin mencari garis di mana tahun 2002 dan 2004 muncul. Mereka kelihatan seperti dua carian, tetapi mereka dapat dilakukan sekaligus seperti ini:

grep '200[24]' regex

Yang bermaksud bahawa kita ingin mencari nombor 200 diikuti oleh 2 atau 4. Dan hasilnya adalah:

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

Yang membawa kita ke peraturan ketiga:

  • Pelbagai aksara yang dilampirkan dalam tanda kurung sesuai dengan mana-mana watak dalam kurungan.

Kurungan memberikan lebih banyak permainan. mereka juga boleh digunakan untuk mengecualikan watak. Sebagai contoh, anggaplah kita ingin mencari laman web di mana watak ":" muncul, tetapi tidak diikuti dengan "/". Perintahnya seperti ini:

grep ':[^/]' regex

Ini hanyalah masalah meletakkan "^" sebagai watak pertama di dalam kurungan. Anda boleh meletakkan semua watak yang anda mahukan di bawah. Hasil arahan terakhir ini adalah 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 diserlahkan, tetapi bukan yang ada di URL kerana URL mempunyai "/" selepasnya.

  • Menempatkan watak "^" pada awal kurungan sepadan dengan watak apa pun kecuali watak lain dalam kurungan.

Perkara lain yang boleh kita lakukan ialah menentukan pelbagai watak. Contohnya, untuk mencari nombor yang diikuti dengan "-" ia akan kelihatan seperti ini:

grep '[0-9]-' regex

Dengan ini kita menentukan watak antara 0 dan 9 dan kemudian tanda tolak. Mari lihat hasilnya:

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

Pelbagai julat dapat ditentukan dalam kurungan hingga julat campuran dengan aksara tunggal.

  • Menempatkan dua watak yang dipisahkan dengan "-" dalam tanda kurung sesuai dengan mana-mana watak dalam julat.

Mari lihat sekarang jika kita dapat memilih bahagian pertama URL. Yang bertuliskan "http" atau "https". Mereka hanya berbeza dalam "s" akhir, jadi mari kita lakukan seperti berikut:

grep -E 'https?' regex

Tanda tanya digunakan untuk menjadikan watak di sebelah kirinya menjadi pilihan. Tetapi sekarang kita telah menambahkan pilihan -E pada perintah. Ini kerana soal siasat adalah ciri ungkapan biasa yang diperpanjang. Sejauh ini kami menggunakan ungkapan biasa, jadi kami tidak perlu memasukkan apa-apa. Mari 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/ Ubuntu: https: //wiki.ubuntu.com/

Oleh itu, kita sudah mempunyai peraturan baru:

  • Watak diikuti oleh "?" sepadan dengan watak itu atau tidak. Ini hanya sah untuk ungkapan biasa yang diperpanjang.

Sekarang kita akan mencari dua perkataan yang sama sekali berbeza. Mari lihat bagaimana mencari garis yang mengandungi perkataan "Debian" dan "Ubuntu".

grep -E 'Debian|Ubuntu' regex

Dengan bar menegak kita dapat memisahkan dua atau lebih ungkapan biasa yang berbeza dan mencari garis yang sesuai dengan mana-mana:

Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Debian: 16 / 08 / 1993
Ubuntu: 20 / 10 / 2004
  • Watak «|» berfungsi untuk memisahkan beberapa ungkapan dan padanan biasa dengan salah satu daripadanya. Ia juga khusus untuk ungkapan biasa yang diperpanjang.

Jom sambung. Sekarang kita akan mencari perkataan "Linux", tetapi hanya di mana ia tidak tersekat pada perkataan lain di sebelah kiri. Kita boleh melakukannya seperti ini:

grep '\

Di sini watak penting adalah "<", tetapi perlu dilarikan dengan meletakkan "\" di hadapannya sehingga grep menafsirkannya sebagai watak istimewa. Hasilnya adalah seperti berikut:

Arch Linux: 11-03-2002 Dari Linux Rulez.

Anda juga boleh menggunakan "\>" untuk mencari perkataan yang tidak bersebelahan antara satu sama lain. Mari kita pergi dengan contoh. Mari cuba arahan ini:

grep 'http\>' regex

Keluaran yang dihasilkannya adalah:

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

"Http" keluar, tetapi tidak "https", kerana di "https" masih ada karakter di sebelah kanan "p" yang dapat menjadi bagian dari kata.

  • Karakter "<" dan ">" masing-masing sesuai dengan awal dan akhir kata. Watak-watak ini mesti dilarikan sehingga tidak ditafsirkan sebagai watak literal.

Kami melakukan perkara yang lebih rumit. Karakter "+" memadankan watak di sebelah kirinya, diulang sekurang-kurangnya sekali. Watak ini hanya tersedia dengan ungkapan biasa yang diperpanjang. Dengan itu kita dapat mencari, misalnya, urutan beberapa nombor berturut-turut yang dimulai dengan ":".

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

Keputusan:

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

Nombor 38 juga diserlahkan kerana ia juga bermula dengan ":".

  • Karakter "+" memadankan watak di sebelah kirinya, diulang sekurang-kurangnya sekali.

Anda juga dapat mengawal bilangan pengulangan menggunakan "{" dan "}". Ideanya ialah memasukkan angka pendakap yang menunjukkan bilangan pengulangan yang tepat yang kita mahukan. Anda juga boleh meletakkan julat. Mari lihat contoh kedua kes tersebut.

Mula-mula kita akan menemui semua urutan empat digit yang terdapat:

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

Perhatikan bahawa pendakap kerinting mesti dilarikan jika kita menggunakan ungkapan biasa, tetapi tidak jika kita menggunakan yang panjang. Dengan diperpanjang ia akan menjadi seperti ini:

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

Hasilnya dalam kedua kes ini adalah:

Arch Linux: 11-03-2002
Gentoo: 31/03 /2002
CentOS: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10 /2004
  • Karakter "{" dan "}" dengan nombor di antara mereka sepadan dengan watak sebelumnya yang diulang sebilangan kali yang ditentukan.

Sekarang contoh lain dengan pendakap. Andaikan kita ingin mencari perkataan yang mempunyai antara 3 hingga 6 huruf kecil. Kami boleh melakukan perkara berikut:

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

Dan hasilnya adalah seperti ini:

- List de Lamans wiki: KErchLinux: https: //wiki.archlinux.org/ Gmemikat: https: //wiki.gentoo.org/wiki/Main_Pumur
CentOS: http: //wiki.CentOS.org/ Debian: https: //wiki.Debian.org/ ATAUJalan mati: https: //wiki.ubuntu.com/ - Fanda terlepas de Akhbar: KErch Linux: 11-03-2002 Gmemikat: 31/03/2002 CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993 UJalan mati: 20/10/2004 DIa adalah Linux Rulez.

Yang, seperti yang anda lihat, tidak menyerupai apa yang kita mahukan. Ini kerana ungkapan biasa mencari huruf dalam perkataan lain yang lebih panjang. Mari cuba versi lain ini:

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

Keputusan:

- Senarai 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 kelihatan seperti yang kita mahukan. Apa yang telah kita lakukan ialah menghendaki perkataan bermula sebelum huruf pertama dan berakhir setelah yang terakhir.

  • Karakter "{" dan "}" dengan dua nombor di antara mereka dipisahkan dengan koma yang sepadan dengan watak sebelumnya yang diulang sebilangan kali ditunjukkan oleh dua nombor tersebut.

Sekarang mari kita perhatikan watak yang utama dari "+". Ia adalah "*" dan operasinya sangat serupa hanya sesuai dengan sebilangan watak termasuk sifar. Iaitu, ia sama seperti "+" tetapi tidak memerlukan watak di sebelah kirinya untuk muncul dalam teks. Contohnya, mari kita cari alamat yang bermula di wiki dan berakhir pada org:

grep 'wiki.*org' regex

Mari 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/

Perfecto.

Sekarang watak terakhir yang akan kita lihat. Watak "\" digunakan untuk melepaskan watak di sebelah kanan sehingga kehilangan makna khasnya. Contohnya: Andaikan kita mahu mencari garis yang berakhir pada titik. Perkara pertama yang mungkin berlaku kepada kita ialah:

grep '.$' regex

Hasilnya bukan seperti yang kita cari:

- Senarai 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/
- Tarikh keluaran: Arch Linux: 11-03-2002
Gentoo: 31/03/2002
CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10/2004
Dari Linux Rulez.

Ini kerana "." sepadan dengan apa sahaja, sehingga ungkapan biasa sepadan dengan watak terakhir setiap baris apa pun. Penyelesaiannya ialah:

grep '\.$' regex

Sekarang hasilnya adalah apa yang kita mahukan:

Dari Linux Rulez.

Permainan Lebih

Walaupun subjek ungkapan biasa sangat rumit sehingga saya akan memberikan beberapa artikel, saya rasa saya sudah cukup memberi anda kesakitan. Sekiranya anda berjaya tiba, selamat. Dan jika anda telah membaca semua ini dalam satu sesi, ambil aspirin atau sesuatu, kerana itu tidak baik.

Buat masa ini sahaja. Sekiranya anda menyukai artikel ini, mungkin anda boleh menulis yang lain. Sementara itu, saya mengesyorkan anda mencuba semua ungkapan biasa di terminal untuk melihat dengan jelas bagaimana ia berfungsi. Dan ingat: Hanya Chuck Norris yang dapat menguraikan HTML menggunakan ungkapan biasa.

 


Kandungan artikel mematuhi prinsip kami etika editorial. Untuk melaporkan ralat, klik di sini.

28 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan.

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Yehezkiel kata

    Bagaimana kehidupan kita tanpa regex?
    Artikel itu sangat berguna, tetapi saya akan membacanya sedikit demi sedikit. Terima kasih banyak-banyak.

    1.    hexborg kata

      Terima kasih atas komen. Saya masih tidak percaya artikel saya telah keluar. 🙂 Ia muncul dengan beberapa kesilapan, tetapi saya harap ia berguna. 🙂

  2.   Scalibur kata

    Terima kasih youssssssss! ..

    Beberapa waktu yang lalu saya terpaksa belajar sedikit mengenai ungkapan biasa .. ..Saya terima kasih kerana mengajar .. dan panduan langkah demi langkah untuk mempelajari setiap daripada mereka ..

    Sangat bagus! .. .. Saya akan mendapatkan aspirin itu .. ee

    1.    hexborg kata

      Sama-sama. Keberanian dan ungkapan biasa tidak boleh bersama anda. 🙂

  3.   tanrax kata

    Pos yang hebat! Bagus. Saya tertanya-tanya berapa jam anda memerlukannya 😀

    1.    hexborg kata

      LOL !! Persoalannya ialah: Berapa jam yang saya perlukan sekiranya saya mengatakan semua yang ingin saya sampaikan? Tidak terhingga !! 🙂

  4.   tammuz kata

    satu perkara yang saya tidak tahu, artikel yang baik!

    1.    hexborg kata

      Terima kasih. Dengan senang hati berkongsi dengan anda.

  5.   helena_ryuu kata

    penjelasan yang hebat. selamat! sangat berguna!

    1.    hexborg kata

      Saya gembira anda mendapati ia berguna. Oleh itu, adalah keseronokan untuk menulis.

  6.   anti kata

    Ini mesti pergi ke tempat yang istimewa. Suka dengan Pilihan tetapi mempunyai kegunaan yang sangat spesifik. Cukup berguna, walaupun saya ingin melihatnya berlaku pada Vim.

    1.    hexborg kata

      Itu adalah soalan untuk bertanya kepada diri sendiri. Saya mempunyai beberapa artikel lagi mengenai ungkapan biasa. Dan saya boleh bercakap mengenai vim di dalamnya. Ia mempunyai beberapa perbezaan dari apa yang telah saya jelaskan dalam artikel ini. Ini masalah untuk meneruskannya. 🙂

  7.   Fernando kata

    Baik!

    Artikel anda sangat bagus, ingin tahu, baru-baru ini (sekarang) saya telah menerbitkan di laman web saya entri yang telah saya persiapkan selama beberapa hari di mana saya telah mengumpulkan senarai watak untuk ungkapan biasa dan beberapa contoh. Dan wajar memasuki DesdeLinux dan melihat entri mengenai subjek yang sama!

    Sekiranya ada saguhati, milik saya adalah JAUH LEBIH BANYAK US

    Sudah tentu regex adalah salah satu perkara yang paling berguna, saya biasanya menggunakannya untuk memangkas output perintah dan menyimpan bahagian yang menarik minat saya, dan kemudian berinteraksi dengannya dalam skrip bash, misalnya. Saya juga banyak menggunakannya di universiti, dan mereka sangat penting dalam pembinaan penyusun (dalam definisi leksikografi dan penghurai). Pendek kata, seluruh dunia.

    Salam dan kerja yang sangat baik.

    1.    hexborg kata

      Terima kasih banyak.

      Saya juga menyukai artikel anda. Ia lebih ringkas daripada milik saya. Ia boleh menjadi rujukan cepat. Ini adalah kebetulan bahawa kami telah menulisnya pada masa yang sama. Anda dapat melihat bahawa orang berminat dengan subjek ini. 🙂

  8.   Elery kata

    Ungkapan biasa untuk dummies =), sekarang lebih jelas bagi saya, dengan cara satu cara untuk menghasilkan output dengan warna untuk grep, adalah dengan membuat alias dalam .bashrc alias grep = 'grep –color = selalu', sekiranya ia berfungsi untuk seseorang.

    salam

    1.    hexborg kata

      Betul. Itu adalah kaedah lain untuk melakukannya. Terima kasih atas inputnya. 🙂

  9.   KZKG ^ Gaara kata

    O_O… sumbangan !!! O_O ...
    Terima kasih banyak untuk siaran, saya telah menunggu sesuatu seperti itu sebentar lol, saya membiarkannya terbuka untuk membacanya dengan tenang di rumah dengan tidak perlu repot untuk menumpukan perhatian lol.

    Terima kasih kerana artikel itu, saya betul-betul 😀

    1.    hexborg kata

      Saya tahu anda akan menyukainya. LOL !! Yang benar adalah banyak perkara yang hilang, tetapi saya sudah memikirkan bahagian kedua. 🙂

  10.   Eliecer Tates kata

    Artikel yang bagus, jika saja saya membacanya semalam, kelas yang saya berikan hari ini akan lebih mudah bagi pelajar saya!

    1.    hexborg kata

      LOL !! Sayang sekali saya terlambat, tetapi gembira ia berguna. 🙂

  11.   LeoToro kata

    Akhirnya !!!, sangat baik siaran .... akhirnya saya menemui sesuatu yang menerangkan dengan jelas ungkapan biasa… ..

    1.    hexborg kata

      Terdapat banyak maklumat di luar sana, tetapi lebih sukar untuk mencari sesuatu yang mudah difahami. Saya gembira saya mengisi jurang itu. 🙂

      Greetings.

  12.   Shakespeare Rhodes kata

    Hai saya perlukan pertolongan, saya mesti membuat carian di / var / log dengan format: yymmdd, dan lognya seperti 130901.log -130901.log, saya mesti mencari semua yang ada antara 1 September hingga 11 Oktober , Satu-satunya perkara yang berjaya saya lakukan ialah membuang semua bulan September tetapi saya tidak tahu bagaimana cara membuat rangkaian lengkap:

    cth: 1309 [0-3] mengembalikan log antara 1 September hingga 30 September, tetapi saya tidak tahu bagaimana untuk masuk juga dalam rangkaian yang sama dari 1 hingga 11 Oktober.

    1.    hexborg kata

      Melakukannya menggunakan ungkapan biasa agak rumit. Saya terfikir bahawa sesuatu seperti ini mungkin berfungsi:

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

      Ini adalah ungkapan biasa yang diperluas. Anda tidak mengatakan alat yang anda gunakan, jadi saya tidak dapat memberikan lebih banyak maklumat.

      Bagaimanapun, saya rasa ini adalah masalahnya daripada menggunakan ungkapan biasa, lebih baik melakukannya dengan mencari. Anda boleh mencuba sesuatu seperti ini:

      cari. -newermt '01 sep '-a! -newermt '11 oct '-cetakan

      Nasib baik. Harap ini dapat membantu anda.

  13.   chipo kata

    Helo! Pertama sekali, saya ingin mengucapkan terima kasih atas kerja anda kerana halaman ini adalah antara "3 teratas" dari laman Linux terbaik saya.
    Saya berlatih dan tidak tahu mengapa RegExp pada nombor telefon tidak berfungsi untuk saya dan kerana saya kehilangan «-E» (yang saya sedar terima kasih kepada catatan ini).
    Saya ingin bertanya kepada anda jika anda tidak mengetahui pdf atau laman web yang baik di mana terdapat latihan di RegExp, walaupun dengan sedikit khayalan anda boleh berlatih mencipta mereka sendiri.

    Salam, Pablo.

  14.   Caly kata

    Sangat bagus, saya baru membaca semuanya, dan ya sekarang saya memerlukan aspirin 🙂

  15.   Oscar kata

    Penjelasan terbaik yang saya lihat mengenai ungkapan biasa. Terima kasih kepada penulis kerana berkongsi karya ini.

    Sesuatu ucapan.

  16.   Alexander kata

    Saya sangat menyukai penjelasan yang sangat baik