Regular Expression In VB Script
التعابير الدائمة في الفي بي سكربت
مقدمة:
الأسم غير عليك أذا لم تعمل بهذ التقنية من قبل، لنبدأ بشرح معناها أولا .
عندما تبحث عن ملف أو مجلد في قرصك الصلب تستعمل ؟ و * لمساعدتك
في البحث. علامة الأستفهام "؟" ترمز لحرف أو رقم واحد في أسم الملف ، النجمة "*" ترمز صفر أو أكثر من
النصوص.
مثال تطبقي:
* أستخدام علامة الأستفهام ؟
عند البحث عن ملف أسمة عربي؟.ملف
الناتج :
عربي1.ملف
عربي2.ملف
عربيx.ملف
..
..
x = أي حرف أو رقم
* أستخدام علامة النجمة
عند البحث عن ملف أسمة عربي*.ملف
الناتج :
عربي.ملف
عربي1.ملف
عربي2.ملف
عربي12.ملف
عربيx~.ملف
عربيxyz.ملف
..
..
x~= أي حرف أو رقم مكرر أو عشوائي
xyz= عدة حروف أو أرقام..
هذه الفكرة البسيطة هي أساس هذه التقنية، و لكن طريقة البحث عن الملفات محدودة على * و ؟ ، التعابير الدائمة
توفر لك الكثير من الأدوات ...
أستعمالاتها :
* للبحث
* للبحث عن نصوص مماثلة للصيغة معينة ، مثل أرقام الهاتف أو أرقام الي بي
* لأستبدال نصوص معينة في ملف نصي
* لأستخراج نصوص تتبع صيغة معينة من ملف
* لمقارنة البيانات المدخلة مع صيغ، لمعرفة صحة البيانات المدخلة...
كتابة التعبير الدائم :
أمثلة:
d{2}-d{5}رقمين + علامة ناقص أو شرطة + خمس أرقام
XX-XXXXX
x= أي رقم من 0 إلى 9
نصوص مطابقة للصيغة :
12-12345
.....................
<(.*)>.*1>
تبحث عن واصفات ال HTML
نصوص مطابقة
عنوان الصفحة بسم الله الرحمن الرحيم
.....................
مفاتيح التعابير :
جزء من مفتاح معيين ، أو تحويل المفتاح إلى نص عادي
^ بداية النص
$ نهاية النص
* تكرير الصيغة السابقة صفر أو أكثر
+ تكرير الصيغة السابقة مرة أو أكثر
؟ ترمز لنص مكون من حرف واحد أو رقم
{n} يكرر الصيغة السابقة n مرة ، n عدد صحيح موجب
| عامل أو يطبق أحد الصيغتين x|y
(صيغة) أذا أدخلت الصيغة داخل قوسين ستم حفظ النص المطابق للصيغة ، لأستعمالة مره أخرى
النصوص المطابقة يم أستدعائها بهذه الطريقة $1 .... $9 .
(?:صيغة) يبحث عن أحد الصيغ مثال : عبد(؟:الله|الرحمن|القادر) ، هذه الصيغة تبحث عن أسم مركب
يبدأ ب "عبد" و ينتهي ب "الله" أو "الرحمن" أو "القادر"
(?!صيغة) نفس عمل الصيغة السابقة ، و لكن يستبعد الكلمات داخل القوس ، يحبث عن جميع أسماء "عبد"
و يستبعد عبدالله و عبدالرحمن و عبدالقادر.
[xyz] مجموعة من النصوص ، يبحث عن أي نص فية أحد محتويات المجموعة يمكنك عمل مجال من
النصوص بهذه الطريقة [a-z] من حرف a إلى z أو [0-9] من رقم 0 إلى 9.
[^xyz] يسبتعد النصوص التي فيها أحد عناصر المجال .
b يبحث عن بداية الكلمة "مسافة+كلمة"
d يبحث عن رقم
*** الكثير الباقي عليكم البحث عنه بالويب
أمثلة عملية :
* * * البحث في صفحات الويب:
عنوان الصفحة:
عنوان الصفحة
للبحث عن وصف الصفحة في الميتا تاج:
للبحث عن كلمات البحث في الصفحة :
للبحث عن عناوين البريد الإلكتروني:
[a-zA-Z_]+?[0-9_]*?@[a-zA-Z]+?[0-9_]*?.[a-z-A-Z]{3}شرح الصيغة:
[a-zA-Z]+?
يبدأ بحروف
+ معناها أكثر من حرف
؟ بعد علامة + تحول الصيغة من Geedy "نهم أو أناني" إلى Non-Greedy ، معناها
أبحث عن أقل عدد ممكن ..
[0-9_]*?
غير أناني يبحث عن أرقام و علامة _ شرطة على السطر
تمثل الصيغتيين السابقتيين أسم المعرف
@
علامة AT العادية
[a-zA-Z_]+?[0-9]*?
عنوان النطاق
.
نقطة أستعملنا لأن النقطة "." تعتبر مفتاح
[a-z-A-Z]{3}
نوع انطاق مكون من ثلاثة أحرف ، هذه {3} تحدد ثلاثة مرات مكررة من الصيغة السابقة.
*في الدرس القادم سنتكلم عن كائن RegExp في لغة الفي بي سكربت
مراجع:
Microsoft Windows Script Technologies Manual
4GuysFromRolla.com - Common Applications of Regular Expressions
4GuysFromRolla.com - Regular Expression Information
aspZone.com - Validating Form Input using Regular Expressions