WikiDer > Wildmat
| Tuzuvchi (lar) | Boy Salz |
|---|---|
| Turi | Naqshni moslashtirish |
wildmat a naqshlarni moslashtirish tomonidan ishlab chiqilgan kutubxona Boy Salz. Asosida joker sintaksis allaqachon ishlatilgan Bourne shell, wildmat odatda taklif qilgandan ko'ra sodda sintaksisga ega bo'lgan dasturlarda naqshlarni moslashtirish uchun yagona mexanizmni taqdim etadi doimiy iboralar. Naqshlar gugurtni sinab ko'rishda har bir ipning boshida va oxirida bilvosita bog'langan.
2019 yil iyun oyida Rich Salz hozirda ishlamay qolgan kutubxonaning asl nusxasini chiqardi GitHub ostida jamoat mulki bag'ishlanish.[1]
Naqshni moslashtirish operatsiyalari
Uchrashuv uchun tekshirilishi kerak bo'lgan naqsh va manbalar o'rtasida qat'iy yakka tartibdagi o'yinlardan tashqari beshta naqshni moslashtirish operatsiyalari mavjud.
- Yulduzcha (*) nol yoki undan ortiq belgilarning har qanday ketma-ketligini moslashtirish uchun.
- So'roq belgisi (?) har qanday bitta belgiga mos kelish uchun.
- O'rnatish belgilangan belgilar. U belgilar ro'yxati yoki diapazonning boshi va oxiri minus (yoki chiziqcha) belgi bilan ajratilgan belgilar qatori yoki ro'yxatlar va diapazonlarning har qanday birikmasi sifatida belgilanadi. Chiziq, shuningdek, to'plamning boshi yoki oxiri bo'lsa, uni belgi sifatida to'plamga kiritish mumkin. Ushbu to'plam to'rtburchaklar ichida joylashgan. Yaqin kvadrat qavs (]), agar u to'plamdagi birinchi belgi bo'lsa, to'plamda ishlatilishi mumkin.
- Salbiy to'plamning U xuddi shu to'rtburchak qavs ichida, sinov satrining boshida (^) belgilar belgisi qo'shilgan to'plam bilan bir xil tarzda ko'rsatilgan. (NNTP alternativani belgilaydi!. Amalga oshirish uchun ham tuzilishi mumkin.)
- Orqa chiziq (\) ochiq kvadrat to'rtburchak ([), yulduzcha, orqa chiziq yoki savol belgisining maxsus ma'nosini bekor qilish uchun belgi. Ikki ketma-ketlik ketma-ketlikda, teskari chiziqni maxsus ma'noga ega bo'lmagan belgi sifatida baholashga olib keladi.
Misollar
- * foo * "foo" o'z ichiga olgan qatorga mos keladi.
- mini * "mini" bilan boshlanadigan har qanday narsaga mos keladi (shu qatorda "mini" qatorining o'zi ham).
- ???* uch va undan ortiq harflardan iborat har qanday qatorga mos keladi.
- [0-9a-zA-Z] har biriga mos keladi alfanumerik ASCII belgi.
- [^]-] yaqin kvadrat qavs yoki chiziqcha tashqari boshqa belgiga mos keladi.
Foydalanish
wildmat eng ko'p uchraydi NNTP Salzning o'zi kabi dasturlar KARVONSAROYkabi aloqador bo'lmagan dasturlarda GNU smola va Yuqish. GNU tar 1992 yil sentyabr oyida wildmat-ni POSIX fnmatch glob matcher bilan almashtirdi. Dastlabki versiyada yopiq holda potentsial chegaradan foydalanish imkoniyati mavjud edi. [.[2]
Dastlabki baytga yo'naltirilgan wildmat dasturini boshqarish imkonsiz multibayt belgilar to'plamlariva qidirilayotgan matnda bir nechta mos kelmaydigan belgilar to'plami bo'lishi mumkin bo'lganida muammo tug'diradi. Vildmatning soddalashtirilgan versiyasi yo'naltirilgan UTF-8 kodlash tomonidan ishlab chiqilgan IETF NNTP ishchi guruhi. Bu qismidir RFC 3977 (4-bo'lim), NNTP uchun 2006 yildagi standart.
UTF-8-ni qo'llab-quvvatlaydigan yangi INN-da wildmat-ning barcha xususiyatlarini qo'llab-quvvatlaydigan "uwildmat" qo'shildi. Russ Allbery tomonidan amalga oshirilgan ushbu 2000 yildagi qayta yozish OOB-ni asl dasturida tuzatadi. Qattiq o'ralgan S ilmoqlar kichikroq bayonotlarga yozilgan.[3][4]
Rsync Ueyn Devison tomonidan o'zgartirilgan wildmatch deb nomlanuvchi GPLv3 litsenziyalangan wildmat avlodini o'z ichiga oladi. The Git versiyani boshqarish tizimi import qiladi va undan foydalanadi. UTF-8 ni qo'llab-quvvatlamaydi, lekin OOB-ga ega va belgilar sinflari va yulduz globuslari uchun qo'shimcha yordamga ega (** o'zboshimchalik bilan chuqurlik uchun).[5]
Shuningdek qarang
Adabiyotlar
- ^ Salz, boy (25 iyun 2019). "wildmat: klassik wildmat naqshini moslashtirish; jamoat mulki". Olingan 25 noyabr 2019.
- ^ Salz, boy (25 iyun 2019). "wildmat.c".
Noto'g'ri shakllangan naqshlar oldida mustahkam bo'lmasligi mumkin; Masalan, "foo [a-" segmentatsiyani buzishiga olib kelishi mumkin.
- ^ – Linux Kutubxonaning vazifalari Qo'lda
- ^ "uwildmat.c magistral / lib - INN". inn.eyrie.org. Olingan 27 noyabr 2019.
- ^ "git / git: wildmatch.c". GitHub.
Tashqi havolalar
- Boy Salz (1991 yil 4 aprel). "v17i079: wildmat-1.4 - a / bin / sh uslubidagi naqsh moslashtiruvchisi, Part01 / 01". Yangiliklar guruhi: comp.sources.misc. Usenet: 1991 yil 4 aprel. [email protected].
- Boy Salz (1991 yil 9 mart). "v17i034: wildmat - a / bin / sh uslubidagi naqsh moslashtiruvchisi, Part01 / 01". Yangiliklar guruhi: comp.sources.misc. Usenet: [email protected].