هل حلمتم يوما بتعلم الصينية؟ ممتاز في هذا المقال سوف أعلمكم شيئا يشبهها, أي أنه يمكنكم كتابة شيء مثل هذا :
(((https?|ftp)://(w{3}\.)?)(?<!www)(\w+-?)*\.([a-z]{2,4}))
هذا ما نسميه التعابير النمطية أو regular expression. التعابير النمطية عبارة عن نظام قوي و سريع للبحث عل سلسلة معينة من الحروف داخل سلاسل كبيرة (جملة، نصوص…)، أو بعبارة أخرى هو استعمال وظيفة ابحث/استبدل بطريقة جد متطورة و التي لا يمكنكم التخلي عنها فور تعلمها و استعمالها.
فالتعابير النمطية سوف تسمح لنا بالبحث و الاستبدال داخل الجُمل و النصوص بطريقة فعالة وسريعة في نفس الوقت، و هذه بعض الأمثلة مما يمكن أن نفعله باستعمالها :
التأكد من أن البريد الإلكتروني الذي تم ادخاله من طرف المستخدم صحيح الشكل مثل : tayeb@gmail.com.
تبديل شكل كتابة التاريخ من الطريقة الأمريكية (2010-05-08) إلى الطريقة الأوروبية مثلا (05/8/2012).
القيام بعملية بحث و استبدال معقدة داخل نص كبير.
و هلم جر من العمليات المعقدة التي يمكن القيام بها على النصوص أو الصفحات و التي لا تعد و لا تحصى. الشيء الجميل الذي يمكن البدأ به هو أن كل لغات البرمجة (على كل حال التي أعرفها ) لا تحتاج لتفعيل أي مكتبة أو برنامج خاص للعمل بالتعابير النمطية و هذا لكثرة استعمالاتها. في هذا المقال و إن كنت مُحبًا لperl في التعامل مع التعابير النمطية، سوف أركز على ruby تماشيا مع نمط المدونة و باعتبارها لغة تشبه perl في العديد من المواصفات و التي من بينها التعابير النمطية.
التركيب :
داخل روبي التعبيرات النمطية لها الشكل التالي :
/pattern/modifiers
بحيث تعبر pattern عن التعبير و modifiers عن متغيرات نمط الربط. فيما يخص هذه الأخيرة فإن روبي يدعم المتغيرات التالية :
“i” تجاهل حالة الأحرف عند مطابقة النصوص
“o” يقوم بالربط مرة واحدة فقط
“x” تجاهل الفضاءات الخالية
“m” يسمح بالربط على مجموعة من السطور بحيث أن الرجوع إلى السطر يعتبره حرفا من الحروف.
بالاضافة إلى انه يمكننا مزج العديد من هذه المتغيرات مع تعبير نمطي واحد، فمثلا لتجاهل حالة الأحرف و الفضاءات الخالية نمزج المتغيرين التاليين : ix/.
نماذج التعابير النمطية في روبي :
باستثناء أحرف التحكم (+ ? . * ^ $ ( ) [ ] { } | ) ، كل حرف يطابق نفسه، كما أنه يمكن الغاء خاصية التحكم في الحروف باستعمال الخط المائل العكسي backslash “". هذه اهم تركيبات التعابير النمطية الموجودة داخل روبي :

أمثلة التعابير النمطية :
ربط الأحرف و الأرقام :

حالات التكرار :

في الجزء الثاني إن شاءالله، سأكمل الامثلة المتداولة و سوف أعرض لكم طريقة البحث و الاستبدال بواسطة روبي و التعابير النمطية.