Pertanyaan Apa perbedaan antara pola gaya-globik dan ekspresi reguler?


Saya telah mengalami situasi di mana hanya pola-pola glob-style yang didukung dan dukungan ekspresi reguler penuh tidak ada, misalnya tombol redis. Saya ingin tahu perbedaan antara keduanya. Juga itu membuat saya bertanya-tanya, apakah menerapkan algoritma pencocokan pencocokan reguler lebih sulit dibandingkan dengan pola gaya-glob yang beberapa perangkat lunak tidak mendukung regex sama sekali?


32
2018-05-16 18:23


asal


Jawaban:


Wildcard global yang geng mendukung sekumpulan metakarakter yang sangat sempit - * adalah "apa saja", ? adalah karakter tunggal yang sewenang-wenang; Bourne shell juga mendukung [a-z123] untuk satu karakter dari sekumpulan alternatif, dan [!x-z789] siapa pun kecuali yang terdaftar.

Regex jelas jauh lebih kaya, mendukung pengulangan, dan (dalam ERE) silih bergantinya dan sejumlah pengulangan khusus. Perl-gaya regex lebih lanjut memperluas formalisme ke titik di mana banyak buku telah ditulis, dan akan lebih banyak lagi.

Regex dasar tidak sama sekali lebih menantang untuk memprogram daripada wildcard global, dan hari ini, programmer yang kompeten akan terhubung ke perpustakaan yang ada dalam kedua kasus itu.

Banyak sistem yang lebih sederhana tidak ingin membebani pengguna mereka dengan kompleksitas belajar ekspresi reguler - bahkan wildcard dasar adalah tantangan untuk menjelaskan kepada orang penjualan rata-rata Anda ^ W ^ W orang yang bukan pengguna komputer penuh waktu.


20
2018-05-16 18:35



Ekspresi reguler digunakan dalam perintah / fungsi untuk pencocokan pola dalam teks. Misalnya dalam parameter pola grep, atau dalam bahasa pemrograman.

Globbing digunakan oleh cangkang untuk mencocokkan nama file dan direktori menggunakan wildcard. Kemampuan goyangan bergantung pada cangkangnya. Bash, misalnya, mendukung wildcard seperti:

Informasi lebih lanjut dapat ditemukan sini


0
2017-10-07 03:50