أجهزة الكمبيوتربرمجة

PHP (رجإكس) - ما هو؟ الأمثلة وفحص التعابير العادية

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

التطور السريع لغات الإنترنت والشبكة العالمية للتصميم المطلوبة إنشاء وسائل متعددة الاستعمالات والمدمجة من تجهيز النصوص مع الحد الأدنى من المبلغ المطلوب لهذا الرمز. وليس استثناء، وتحظى بشعبية بين مبتدئين والتطوير المهني للغة PHP. لغة التعبير العادية باعتبارها نماذج نصية لتبسيط مهمة التعامل مع النص والحد من رمز لعشرات ومئات من الخطوط. لا يمكن حلها العديد من المشاكل على الإطلاق دون ذلك.

التعبير العادية في PHP

لغة PHP لديه ثلاث آليات للعمل مع التعابير العادية - «ereg»، «mb_ereg» و «PREG». والأكثر شيوعا هو واجهة «PREG»، التي توفر الوصول إلى مكتبة PCRE دعم التعبير العادية، وضعت أصلا للغة بيرل، الذي تم تضمينه في حزمة PHP وظائف. PREG الباحثين عن وظائف في مطابقة السلسلة نص معين، وفقا لنمط معين في لغة التعابير العادية.

أساسيات في بناء الجملة

كجزء من مقالة قصيرة من المستحيل أن يصف بالتفصيل بأكمله التعبير اللغوي العادي، لهذا هناك أدب خاص. نحن نقدم فقط العناصر الرئيسية لإظهار الفرص المتاحة لتطوير وفهم أمثلة التعليمات البرمجية.

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

على سبيل المثال، في التعبير / \ د {3} - \ د {2} - \ د {2} / م مقسم هو "/"، تليها القالب، ورمز «م» هو المعدل.

يتم ترميز كل قوة التعابير العادية باستخدام الفوقية حرفا. وmetacharacter لغة الرئيسي هو مائل - "\". يتغير نوع التالية الأحرف على العكس (أي. E. تحويل إلى البدل الطابع العادي والعكس بالعكس). metacharacter آخر مهم هو خط مستقيم «|»، يحدد نموذج بديل. من أمثلة حرفا ميتا:

^ بدء الكائن أو سلسلة
( بدء subpattern
) subpattern نهاية
{ محدد الكمية البداية
} محدد الكمية نهاية
\ د رقم عشري 0-9
\ D أي حرف ليس عددا
\ ق رمز فارغة، والفضاء، التبويب،
\ ث القاموس رمز

PHP، وتجهيز التعابير العادية، التي تعتبر حرف صالح منفصل الفضاء، وبالتالي فإن التعبير عن XYZ وABC WHERE مختلفة.

subpatterns

في PHP subpatterns منتظمة بين قوسين، وأنها تسمى أحيانا "subexpressions". أداء المهام التالية:

  1. بدائل التخصيص. على سبيل المثال، نمط الحرارة (شيء | الطيور |) يتزامن مع "الحرارة" كلمات "فايربيرد" و "الساخنة". وبدون أقواس أنها لن تكون سوى سلسلة فارغة، "الطيور" و "الساخنة".

  2. "مذهلة" subpattern. وهذا يعني أنه إذا مطابقة نمط فرعية، ثم يعود كل مباراة. من أجل الوضوح، نعطي مثالا على ذلك. وبالنظر إلى التعبير العادي التالي: يحصل الفائز على ((الذهب | مطلية بالذهب) (ميدالية | كوب)) - وسلسلة للمباريات "، والفائز يحصل على الميدالية الذهبية." بالإضافة إلى العبارة الأولى، وسوف تصدر نتائج البحث: "الميدالية الذهبية"، "الميداليات"، "الذهب".

مشغلي التكرار (kvadrifikatory)

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

للحصول على وصف التكرار تستخدم kvadrifikatory - الأحرف الخاصة لتحديد العدد. Kvadrifikatory نوعان:

  • شيوعا بين قوسين.
  • مخفضة.

محدد الكمية الإجمالية لمست من الحد الأدنى والحد الأقصى من عنصر التكرار المسموح بها في شكل رقمين في الأقواس، مثل س {2،5}. إذا لم يعرف أكبر عدد ممكن من التكرار، لم يتم تحديد الوسيطة الثانية: س {2}.

محددو الكمية يختصر هي رموز للالأكثر شيوعا من التكرار من أجل تجنب الحمولة الزائدة في بناء الجملة غير ضرورية. عادة ما تكون هناك ثلاثة تخفيضات:

1. * - صفر أو أكثر التكرار، وهو ما يعادل {0،}.

2. + - واحد أو أكثر من التكرار، أي {1} ...

3.؟ - صفر أو واحد فقط تكرار - {0،1}.

أمثلة التعابير المنطقية

بالنسبة لأولئك الذين يتعلمون التعابير العادية، والأمثلة - أفضل كتاب. نعطي القليلة التي تظهر الفرص المتاحة لهم مع الحد الأدنى من الجهد. كل رمز متوافق تماما مع إصدارات PHP 4.x و أعلاه. إلى فهم كامل للتركيب واستخدام كافة ميزات اللغة نوصي كتاب J .. فريدل، "التعابير العادية"، والتي تعتبر بشكل كامل في بناء الجملة، وهناك أمثلة من التعابير العادية PHP فحسب، ولكن أيضا لبيثون، بيرل، الخلية، جافا، روبي، وC #.

التحقق من صحة عنوان البريد الإلكتروني

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

القرار. كما هو الحال مع أي لغة برمجة، في PHP رجإكس التحقق البريد الإلكتروني عنوان يمكن تنفيذها بطرق مختلفة، والأمثلة في هذا المقال ليست الاختيار النهائي والوحيد. لذلك، في كل حالة، ونحن يجب تقديم قائمة من المتطلبات التي يجب أن تؤخذ بعين الاعتبار عند برمجة وتنفيذ محدد يعتمد كليا على المطور.

وهكذا، فإن التعبير الذي يختبر عنوان بريد إلكتروني صالح، يجب أن تحقق الشروط التالية:

  1. وجوده في التشكيلة الأساسية الرمز @، وليس هناك أي ثغرات.
  2. جزء المجال من عنوان الرمز @، يحتوي على أحرف صالحة فقط لأسماء النطاقات. الأمر نفسه ينطبق على اسم المستخدم.
  3. عند التحقق من اسم المستخدم هو ضروري لتحديد وجود أحرف خاصة مثل الفاصلة العليا أو خط عمودي. هذه الرموز يمكن أن تكون خطيرة ويمكن الواردة في مثل هذا النوع من الهجمات التي SQL الحقن. تجنب العناوين.
  4. أسماء يسمح نقطة واحدة فقط، والتي قد لا يكون الأول أو الأخير حرف في السلسلة.
  5. يجب أن يحتوي على اسم المجال على الأقل اثنين ولا يزيد على ستة أحرف.

على سبيل المثال، مع الأخذ بعين الاعتبار جميع هذه الشروط يمكن أن ينظر إليه في الشكل التالي.

التحقق من صحة URL

المهمة. تحقق ما إذا كانت سلسلة النص المحدد غير صالح URL العنوان. مرة أخرى، نلاحظ أن التعابير العادية URL تدقيق يمكن تنفيذها بطرق مختلفة.

القرار. لدينا النسخة النهائية كما يلي:

/^(https؟:\/\/)؟([\da-z\.-]+)\.([az\.]{2،6})([\/\w \ .-] *) * \ /؟ $ /

الآن تحليل مكوناته بمزيد من التفصيل باستخدام الرسم.

المطالبة 1 قبل URL لا ينبغي أن يكون أي أحرف
المطالبة 2 تحقق من وجود بادئة إلزامية «HTTP»
البند 3 يجب أن يكون هناك حرف
المطالبة 4 إذا كان هناك «الصورة»، ونقاط URL إلى اتصال آمن «الشبكي»
مطالبة 5 الجزء المطلوب من "//"
مطالبة 6 لا الأحرف
ص 7-9 التحقق من نطاق المستوى الأول وجود نقطة
p.10-13 التحقق من مجال كتابة المستوى الثاني ونقطة
p.14-17

URL بنية ملف - مجموعة من الأرقام والحروف وسفلية، شرطات، أو النقاط، ومائلة في نهاية

تحقق من أرقام بطاقات الائتمان

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

القرار. عند إنشاء التعبير تحتاج إلى أن تأخذ في الاعتبار احتمال وجود ثغرات في غرفة الإدخال. وتنقسم الأرقام على الخريطة إلى مجموعات لتسهيل القراءة والاملاء. ولذلك، فمن الطبيعي أن أي شخص يمكن أن يحاول إدخال رقم بهذه الطريقة (أي. E. عن طريق المسافات).

إرسال تعبير عالمي يأخذ بعين الاعتبار المساحات الممكنة أو الواصلات، هو أكثر تعقيدا من مجرد تجاهل كافة الأحرف باستثناء الأرقام. ولذلك، فإننا نوصي باستخدام تعبير البدل / D، الذي يزيل كافة الأحرف باستثناء الأرقام.

الآن يمكنك الانتقال مباشرة إلى رقم الشيك. جميع الشركات، الشركات المصدرة لبطاقات الائتمان استخدام تنسيق رقم فريد من نوعه. في المثال يتم استخدامها، والعميل لا يحتاج إلى إدخال اسم الشركة - أنها تحدد حسب الرقم. بطاقات فيزا تبدأ دائما مع أرقام 4، وبطول 13 أو 16 رقما. ماستركارد يبدأ في حدود 51-55 مع عدد طويل 16. ونتيجة لذلك، نحصل على التعبير التالي:

قبل معالجة هذا الأمر يمكن مزيد من الاختبارات أرقام الأخيرة من رقم، والذي يحسب على خوارزمية Luhn.

التحقق من رقم الهاتف

المهمة. التحقق من صحة رقم الهاتف المدخل.

القرار. تختلف عدد الأرقام في أرقام الهاتف الثابت والمحمول اعتمادا كبيرا على البلاد، حتى تحقق عالميا باستخدام التعابير العادية، ورقم الهاتف المستحيل بشكل صحيح. لكن الأرقام الدولية لها شكل صارم والكمال للتحقق من نمط. بل أكثر من ذلك أن المزيد والمزيد من مشغلي الهاتف الوطنية تحاول تلبية نفس المستوى. هيكل الغرفة على النحو التالي:

+ CCC.NNNNNNNNNNxEEEE، حيث:

- C - هو رمز البلد يتكون من 1-3 أرقام.

- N - عدد يصل إلى 14 أرقام.

- E - تمديد اختياري.

بالإضافة إلى عنصر لا غنى عنه، وعلامة X موجود فقط عند الحاجة التمديد.

ونتيجة لذلك لدينا التعبير التالي:

^ \ + [0-9] {1،3 } \ [0-9] {4،14}. (؟:. س +)؟ $

الأرقام في نطاق

المهمة. فمن الضروري لضمان صحيح صدفة من طائفة معينة. وبالإضافة إلى ذلك، فمن الضروري إيجاد تعبير عادي فقط الأرقام من مجموعة.

القرار. وفيما يلي بعض العبارات لبعض الحالات الأكثر شيوعا:

تحديد ساعة 1-24 ^ (1 [0-2] | [1-9]) $
يوم في الشهر 31/01 ^ (3 [01] | [12] [0-9] | [1-9]) $
ثوان أو دقائق 0-59 ^ [1-5]؟ [0-9] $
وهناك عدد من 1 إلى 100 * (100 | [1-9] [0-9]) $
يوم من العام 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} | [1-9] [0-9]) $

عناوين IP البحث

المهمة. فمن الضروري تحديد ما إذا كان سلسلة معينة هي عنوان IP صالح في شكل عناوين IPv4 في مجموعة من 000.000.000.000-255.255.255.255.

القرار. كما هو الحال مع أي مشكلة في لغة PHP، التعبير العادي لديه العديد varintov. على سبيل المثال، ما يلي:

التدقيق على الانترنت من التعبيرات

تحقق التعابير المنطقية بشكل صحيح للمبتدئين يمكن أن يكون صعبا بسبب تعقيد بناء الجملة، والذي يختلف من لغات البرمجة "العادية". لحل هذه المشكلة، هناك العديد من اختبار على الانترنت التعبيرات التي تجعل من السهل للتحقق من صحة القالب الذي قمت بإنشائه في النص الحقيقي. مبرمج يدخل البيانات التعبير والتحقق ونرى على الفور نتيجة للمعالجة. عادة ما يكون هناك وجود قسم المرجع، الذي تفاصيل التعابير العادية، والأمثلة والخلافات تنفيذ للغات الأكثر طويلة.

ولكن لخدمات الانترنت تثق تماما النتائج لا ينصح لجميع المطورين الذين يستخدمون PHP. يتم كتابة تعبير منتظم والتحقق منها في شخص، ويثير التأهيل وضمان عدم وجود أخطاء.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.unansea.com. Theme powered by WordPress.