الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعابير الدائمة في الفي بي سكربت (Regular Expression)

مغلق
بدأه Mr.ASP في 14 مايو 2002 · 9 رد · 932 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

Regular Expressions

#2

معلومة جديدة لم أكن أعرف بها من قبل وكانت سوف تسهل علي كتابة الكثير من المعادلات

جزاكم الله خير

#3

والله مني فاهم شيءءءءءءءءءءء ابداااااا :confused: :eek: :confused:

:D

#4

يسعدني أخي عبدالرحمن المعزاب أن أكون معلم المعلم:o

أخي ASP-Boy : داخل علشان تبي تتعلم أكيد ،بس قلي وش الي

مانت بفاهمه حتى الآن ؟

شرح:

كلمة مفتاح و مفاتيح :

نستخدم ؟ و * في البخث عن ملف معين هذه الرموز أسمها مفاتيح

و هذه المفاتيح لها دلالة معينة و تقوم بعمل معين

ملاحظة:

تم أضاقة هذه التقنية في أخر أصدارة لل الفي بي سكربت 5،5

#5

يعطيك العافية Mr. ASP و فكرتك حلوة في طرح الأفكار

التي في الحقيقة نحن في حاجة لها على الأقل لا ننتظر وقوع

مشكلة حتى نتعلم ..

شكرا لك و المزيد منك إن شاء الله ..

You can fly while you can touch the sky

#6

كائن RegExp :

أضيف هذا الكائن في الأصدارة 5.5 ، يتم تشغيلة بهذه الطريقة

Dim RE
Set RE=new RegExp

الكائن من نوع Class مدمج بالغة ، و ليس ملف DLL منفرد ، لهذا يتم تعريفة بأستخدام كلمة New و ليس

عن طريق CreateObject

صفاتة:

Global التعميم :

أذا كانت قيمتة True يبحث في كل النص و يستخرج جميع النتائج

أذا كانت False يكتفي بإجاد نتيجة واحدة فقط ، القيمة الأفتراضية

هي False .

IgnoreCase :

واضح من أسمه ، أذا كانت قيمته True يعامل الحروف الكبيرة و الصغيرة

بالمثل ، A = a .

أما أذا كانت False ف A لا تساوي a، القيمة الأفتراضية

هي False ..

Multiline عدة سطور :

أذا كانت True تسمح ببحث نصوص فيها عدة سطور، False

تتعامل مع النص كسطر واحد فقط، القيمة الأفتراضية

هي False ..

Pattern الصيغة:

الصيغة المراد عملها على النص المدخل .

دوال:

* Execute InputString

يتم تشغيل عملية البحث

* * كيفية أستعمالها :

Dim Matches
Set Matches=RE.Execute(InputString)

ناتج الدالة عبارة عن مصفوفة النتائج عناصرها كائنات من نوع Match

* Relplace InputString,ReplaceString

تقوم بتشغيل البحث و أستبدال النتائج ،

في ReplaceString : يمكنك أستخدام الأقواس في الصيغة لحفظ النتائج

مثل (صيغة) ،و يمكنك الرمز للنتيجة الأولى ب $1و الثانية ب $2 ... الى $9

* * كيفية أستعمالها :

Dim OutputString
OutputString=RE.Relplace (InputString,ReplaceString)

OutputString تساوي قيمة InputString بعد عملية الأستبدال

* Test inputString

تقوم بأختبار الصيغة Pattren على النص inputString، تعطي

True أذا وجدت نتائج و False أذا لم تجد شيء

Dim BoTest
BoTest=RE.Test (InputString )

كائن Match :

صفاتة:

FirstIndex : يعطيك مكان النتيجة بالنص الأصلي

Length : يعطيك حجم نص النتيجة

Value : القيمة النصية للنتيجة

التعامل مع مصفوفة النتائج

Dim Matches,Match,Code
Set Matches=RE.Execute(InputString)
For Each Match in Matches
  Code=Code & _
  "index=" & Match.FirstIndex & "," &  _
  "Length=" & Match.Length & "," &  _
  "Value=" & Match.Value & _
  vbcrlf
Next
Response.Write "" & Code & ""

تطبيق بسيط :

أنسخ الكود أعلاه و ألصقة في الدفتر و أحفظة كصفحة html وشغلة

أذا حدث خطأ ففي الكود فتأكد من أصدارة الفي بي سكربت يجب أن تكون الأصدارة 5.5 أو أصدارة أحدث..

#7

يعطيك العافية و الله

You can fly while you can touch the sky

#8

شكرا لك Mr.ASP موضوع جميل وانا مبتدئة في الـASP فأرجو أن تخبرني ما أفضل طريقة للوصول على مستواك في العلم الذي يدل (ماشاء الله) على فهم صحيح واعتقد ان الجميع يوافقونني في رائيي ولكن ماالطريقة الصحيحة للوصول لهذا المستوى دون نسخ اكواد او طرحها بدون فهم ولا فائدة ؟؟؟؟

ارجو منك او من الاخ عبدالرحمن الادلاء بدلوكم ... وشكرا

اختكم داليا

#9

مرحبا بك أخت داليا في المنتدى .. طبعا يسمحلي أجاوب الأخ الأستاذ MR.ASP ..

طبعا أنا من اخر الناس اللي تعلمت في هذا المنتدى و الحمد لله و صلت بسرعة جدا بتوفيق الله و مساعدة الإخوان المشرفين ..

اولا يجب أن تعرفي فكرة بسيطة عن ال HTML و تتعلمي الفي بي سكريبت لأنها لب ال ASP ..

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

عالعموم هناك موقع انجليزي رهيب و سهل للتعلم و هو :

www.w3schools.com

كما أن هناك موقعي المدرسة العربية للويب و يمكنك ان تجدي كل ما يهمك من أفكار و مواضيع و أسس لتعلم ال ASP طبعا ابدئي من السكريبتات ثم ال asp .. و العنوان :

http://as4web.cjb.net

و شكرا لك .. و انتظر رد الأستاذ MR.ASP لنستفيد أكثر ..

You can fly while you can touch the sky

#10

أشكرك أخوي محمد على الرد ..

أختي داليا:

الطريقة بسيطة، أعتبري الأنترنت جامعة و تعلمي ..

كتب البرمجة الي قرأتها:

Hardcore Visual Basic

لا تشرينه صعب مره

كتاب:

Fortran 101

فورتران لغة قديمة تستخدم في حل المسائل العلمية و الرياشية

مقدمة في الحاسب الألي:

كتاب في الثانوية

كل هالكتب ماتخص ال ASP ، كل ماعندي من معرفة بال ASP

تعلمة من الويب ...

بس أنا أنصحك بتعلم ال ASP.NET و ال XML لأنهما يشكلان مستقبل الأنترنت ...

و المواقع كثييرة

هذا الموضوع مغلق.

مواضيع مشابهة