Bagaimana Regular Expression (Regex) Mengesan Corak Teks Yang Rumit Dalam Sejuta Baris?

Bagaimana Regular Expression (Regex) Mengesan Corak Teks Yang Rumit Dalam Sejuta Baris?

Utama/Video/Bagaimana Regular Expression (Regex) Mengesan Corak Teks Yang Rumit Dalam Sejuta Baris?

Teknologi dan AI dalam 2 Minit

Bagaimana Regular Expression (Regex) Mengesan Corak Teks Yang Rumit Dalam Sejuta Baris?

9 Nov 2026
1 minit

Kalau kau nak cari semua nombor telefon dalam sejuta baris log, kau suruh seorang posmen baca setiap baris satu per satu guna kanta pembesar.

Apa anda akan pelajari

Tiga tahun kemudian, dia baru sampai baris dua ratus, dan matanya dah berpinar!

Tapi corak kau tersangkut di tengah nombor siri yang lebih panjang, lalu keluar padanan palsu!

Tapi kalau enjin cuba semua kemungkinan secara membabi buta dan asyik berpatah balik, sejuta baris boleh buat komputer tersekat lama!

Siri Teknologi dan AI dalam animasi 3D LEGO (V916-046) oleh KongsikanDotCom.

Nota video

Teks penuh video

Kalau kau nak cari semua nombor telefon dalam sejuta baris log, kau suruh seorang posmen baca setiap baris satu per satu guna kanta pembesar. Tiga tahun kemudian, dia baru sampai baris dua ratus, dan matanya dah berpinar! Tapi setiap nombor telefon berbeza, jadi carian perkataan biasa langsung tak jumpa apa-apa!

Jadi, kau tulis corak, bukan perkataan tepat, contohnya backslash d bermaksud mana-mana satu digit dari kosong hingga sembilan. Ini namanya character class atau kelas aksara. Tapi panjang nombor telefon tak sama, ada sepuluh digit, ada sebelas!

Jadi, kau tambah kurungan kerinting sepuluh koma sebelas selepas corak tadi, maksudnya ulang corak itu sepuluh hingga sebelas kali, manakala tanda tambah pula bermaksud satu atau lebih. Ini namanya quantifier. Tapi corak kau tersangkut di tengah nombor siri yang lebih panjang, lalu keluar padanan palsu!

Jadi, kau pasang penanda sempadan, caret untuk awal baris, dolar untuk hujung baris, dan backslash b untuk sempadan perkataan. Ini namanya anchor. Tapi kau cuma nak kod kawasan, bukan seluruh nombor telefon!

Jadi, kau balut bahagian corak itu dengan tanda kurungan, dan enjin regex akan simpan bahagian tersebut dalam kotak berasingan untuk diguna semula. Ini namanya capture group. Tapi kalau enjin cuba semua kemungkinan secara membabi buta dan asyik berpatah balik, sejuta baris boleh buat komputer tersekat lama!

Jadi, enjin seperti grep dan ar i 2 menyusun corak kau menjadi mesin keadaan terhingga, yang membaca setiap aksara sekali lalu sahaja tanpa berpatah balik. Ini namanya finite state automaton. Sekarang satu baris corak pendek boleh tapis sejuta baris teks dalam sekelip mata, dari nombor telefon, alamat emel, sampai log ralat server.

Kelas aksara, quantifier, anchor dan capture group bergabung jadi satu mesin pengesan corak yang wajib ada dalam kotak alat dev kau. Lepas ni nak belajar apa pula?

Siri Teknologi dan AI dalam animasi 3D LEGO (V916-046) oleh KongsikanDotCom. Tonton lagi di

Animasi 3D dibina dengan kod (Three.js); suara latar dijana dengan bantuan AI dan disemak oleh pasukan KongsikanDotCom.

Jangan terlepas video seterusnya

Langgan channel YouTube KongsikanDotCom untuk video ilmu, sains & fakta serta doa harian — kandungan baharu diterbitkan setiap hari.