بسم الله الرحمن الرحيم
ما بالأمس خافيا صار اليوم ظاهرا جليا
من أجل الوصول الى الاسبقة في مجال skynet بصفة عامة والريجكس regexبصفة خاصة . أحببت أن أضع لك بين أيديكم أنا وفريق عمل pova skynet شرحا مفصلا
للمبتدئين في مجال regex والذي يكشف النقاب عن غموض هذا المجال وحصريته
وإستحكاره من بعض المنتديات الاخرى فقط
ولله الحمد تم تحضير شرحا مبسطا يناسب إستعاب جميع رواد هذا المجال
وبعد جهد جهيد وقراءة مطولة لكتب أجنبية ومشاركات أعضاء ومقارنات كثيرة
تم التوصل الى هذه النسخة المبسطة من الشرح والتي تعتبر مفتاح الدخول
لإحتراف regex بصفة عامة
وبسم الله نبدأ درسنا وأرحب بأي أستفسار أو نقاش , شرط أحترام وجهات النظر
والنقاش البناء الذي يزيد من الموضوع فائدة ونفعا للجميع
أول ما هو الريجكس وما هي فائدته ؟؟
الرجيكس هو ملف يستعمل لغة التعابير النظامية Regular Expression
ويستعمل لي تصنيف الملفات المقتنصة وذلك بإعطائها الامتداد المناسب
في أغلب الاحيان تكون الملفات المقتنصة بدون أسم أو أمتداد
ولكي نتعرف عليها لا بد من قراءة محتواها لمعرفة نوعها
فعندما بقتنص السكاي نت ملف فإنه يبدأ بقراءة سطور الريجكس سطرا تلوى سطرا من الاعلى حتى النهاية ولا ينتقل الى السطر التاليحتى يكمل الاول محاولا أيجاد أمتداد يوافق الملف .. فإذا وافقه فإنه يعطيه الامتداد وإن لم يوافقه يذهب الى السطر التالي .. وإذا أنتهى من جميع الاسطر ولم يجد ما يوافقه فإنه يتجاهل هذا الملف , ولا يمكننا بأي حال من الاحوال أقتناص هذا الملف حتى لو كان هذا الموقع موجود أصلا في ملف الرولز rules .. ولذلك نجد في أخر كل ملف ريجكس regex هذا السطر وهو لاعطاء أمتداد bin للملف وذلك لعدم فقدانه والذي سوف نفسره لاحقا بعون الله تعالى
اقتباس:
b . bin;ALL
السطور الموجودة في أعلى الريجكس تكون لها الاولوية ولذلك نجد أن الملفات المراد حجبها BLOCK كون في السطور العليا من الريجكس
ربما يسأل سائل هل يقوم الريجكس بمنع الملفات من الاقتناص . وأن كان لا يمنع فما المقصود بحجب الملفات ؟؟
لا يقوم ملف الريجكس بمنع الملفات من النزول , ولكن يمكن أعطاء الامتداد block للملف والذي يمكننا
السماح له أو منعه عن طريق الرولز rules أو عن طريق الضغط على حرف G في البرنامج وعدم
أختياره .. وفي حاله عدم منع ملف البلوك BLOCK من الرولز فإنه يمكن أفقتناصه إذا كان الموقع مضافا في الرولز حتى ولو لم يتم أختباره عن طريق الضغط على G
بعد أن ألقينا نظرة عامة على الريجكس . نبدأ في تحليل سطوره وقبل كل شيء دعونا نتعرف ما هو السطر الواحد ومما يتكون ؟؟
يتكون السطر الواحد في ملف الريجكس من أربع أقسام رئسية تفصل بينهم مسافة (مسطرة )
1- لون الملف المقتنص . ويستعمل لتمييز الملفات المقتنصة .
2- الطريقة المستعملة لإيجاد نوع الملف أوما أصبح يعرف بنوع البصمة .
3- جملة الشرط
4- أمتداد الملف ومجموعته
ودعونا الان نتطرف الى هذه الاقسام بالترتيب شرحا وتفصيلا
القسم الأول (اللون):
----------------------
لتمييز الملفات المقتنصة في نافذة السكاي نت بين مجموعة وأخرى نعطي لها قيمة بالارقام الستعشرية وتتكون من ستة خانات كل خانتين يمثلان لونا .. وتسمى هذه الطريقة للتعبير عن الألوان بـ RGB
نسبة لأوائل الحروف باللغة الانجليزية الأحمر - الأخضر - الأزرق
شرح :
كل خانتين تعبر عن لون
الخانة الأولى و الثانية تعبر عن اللون الأحمر الخانة الثالثة و الرابعة تعبر عن اللون الأخضر الخانة الخامسة و السادسة تعبر عن اللون الأزرق
مثال :
(FFFFFF – white, FF0000 – red, 00FF00 – green - 0000ff –blue , 000000-black )
القسم الثاني (نوع البصمة):
------------------------------
تعريف :
هي لتحديد نوع البصمة التي سنستخدمها في القسم الثالث .
القيم التي تأخذها :
بصمة داخلية b
بصمة خارجية t
بصمة الاسم n
شرح :
لكشف نوع الملف الذي يتم تنزيله من قبل البرنامج
يلجأ البرنامج لطريقتين
1-إيجاد المحتوى وذلك بقراءة بداية الملف عن طريق استعمال أداة تحرير ستعشرية و هي الطريقة b
2- قراءة الحقل الخارجي للملف عن طريق الريجستري أو عن طريق برامج مساعدة و هي الطريقة t
3- بعد زيادة أمكانية الحصول على الاسماء للملفات المقتنصة قام شخص يدعى k-tod بإستحداث طريقة
جديدة وهي قراءة أسم الملف والحصول على أمتداده . وهذه الطريقة لا تعمل الا مع أصداره وهو skynet20a
وتعتبر الطريقة الثانية هي الوحيدة التي تمكننا من تصنيف الملفات المضغوطة بحسب محتواها والتي سنشرع في تحليلها .
النوع الثالث الجملة الشرطية
---------------------------
في البداية يجب علينا أضافة حرف b ذلك للاشارة لإستعمالنا لغة التعابير النظامية Regular Expression
ثم بعد ذلك نضيف علامة " ^ " وذلك للاشارة لبداية الخط ( الملف)
ثم نضيف بصمة الملف والتي نتحصل عليها بقراءة الملف بواسطة أداة التحرير الستعشرية
ونجدها في في بداية الملف
فمثلا Rar! تعبر عن ملف من نوع Rar
النوع الرابع الامتداد والمجموعة
-------------------------------
نكتب الامتداد الذي نريده للملف ثم فاصلة منقوطه " ; " ثم المجموعة حسب رغبتنا
فمثلا يعتبر ملفات zip و rar ملفات مضغوطة فيمكننا وضعها تحت مجموعة واحدة وهي ARCHIVE
وعند تحديدها بالضغط على G فإننا نستطيع أقتناص كل من ZIP و RAR دون الحاجة
الى تحديدهما وتستعمل المجموعات لتسهيل عملية الاختيار .. فإذا أضفنا فاصلة منقوطة ثم ALL فإننا
بتحديد ALL من قائمة G نستطيع إقتناص جميع الملفات الموجودة في الريجكس ...
ليصبح السطر هكذا
كود:
FF0080 b ^Rar! rar;ARCHIVE;All
شرح بعض العلامات المستعملة في الريجكس
1- " . " تعني أي رمز
2- "^ " وتعني بداية الخط
3- " i " هي نهاية الخط
4- "| " وهي تعني ( أو ) وتستعمل للاختيار بين شيئين هذا أو ذاك
5- " ()" وهي للتعبير عن المجموعة
6- "[ ]" الاقواس الكلاسيكية
7- "" وتضاف أمام العلامة للتعامل معها على أنها رمزا
8- "*" لتكرار الرمز قبلها من صفر الى مالا نهاية
9- "+" لتكرار الرمز مرة واحدة الى مالانهاية
10- "؟" وتستخدم لتكرار الرمز مرة وعدم تكراره
11- "{N}" لتكرار الرمز الذي قبلها بقيمة العدد الموجود داخله
12- "{N,}" لتكرار الرمز الذي قبلها على الاقل بقيمة الرقم N
13- "{n.m}" لتكرار الرمز بقيمة محصورة بين N الى M
لن يكتمل المفهوم تماما إلا ببعض الامثلة والتي سوف والتي سوف نزودكم بها لاحقا بعون الله تعالى
وللمزيد من الابحار في عالم Regular Expression سوف تجدون أهم الكتب في هذا المجال
والتي لم ابخل بها عليك والتي بمجرد حصولي عليها لم أتردد في مشاركتكم أيها
ستجدونها في الملفات المرفقة
وفي الدرس القادم سوف نتطرف الى شرح أكثر تعمقا وأمثلة على ماسبق ذكره من شرحات
وكذلك سوف يتم الابحار في عالم الرولز rules
وهدفنا دائما في الهندسة نت هو الوصول للمعرفة بأوسع أبوابها ودون أحتكار
وملاحظاتكم تهمنا جميعا لزياة المعرفة في هذا المجال
ولا تترددوا في السؤال لانكم سوف تتحصلون على الاجابة الوافية المبسطة بعون الله
ولا يسعني الا أن أقول لكم وفقكم الله في هذا المجال وفي الحياة ككل