لنتحدث عن التعبيرات النمطية.
الآن ، التعبيرات النمطية ليست فريدة من نوعها في Python.
في الواقع ، تراها في جميع لغات البرمجة.
لكنني سأعلمك التعبير العادي بسرعة ، لأنها مفيدة جدًا ، لا سيما
عندما تفعل ، لنقل ، التحقق من الصحة ، مثل التحقق من أن شخصًا ما قد أدخل البريد الإلكتروني
الصحيح أو أن لديك متطلبات كلمة المرور أو تريد التحقق في حالة وجود جزء من السلسلة في جزء من النص.
لذلك هذا شيء سنستكشفه في هذا الفيديو.
التعبيرات العادية.
ما هم؟
حسنًا ، لحسن الحظ بالنسبة لنا ، تأتي Python بوحدة نمطية للتعبير العادي.
تذكر أن التعبيرات النمطية ليست خاصة ببايثون.
يمكنك استخدامها إلى حد كبير بأي لغة ، لكنها مفيدة جدًا للعثور على الأشياء في جزء من
النص.
لنفترض أن لدينا سلسلة هنا ويمكننا أن نقول بحث سلسلة داخل هذا.
التالي رجاء.
هناك نذهب.
الآن ، لنفترض أنني أردت البحث عن شيء ما هنا.
بادئ ذي بدء ، هل يمكنني فعل شيء كهذا؟
هل أستطيع أن أقول البحث؟
في السلسلة.
لنطبع هنا.
وإذا قمت بالنقر فوق تشغيل.
أنا على صواب.
وهذه طريقة بسيطة يمكننا من خلالها البحث عن شيء داخل سلسلة.
فلماذا نحتاج حتى إلى تعابير نمطية؟
حسنًا ، التعبيرات النمطية أقوى قليلاً من هذا ، لأننا ربما نريد البحث
في عدد مرات حدوث البحث في السلسلة.
أو ربما لدينا سلسلة معقدة.
اسمحوا لي أن أريكم ما أعنيه.
الطريقة التي نستخدم بها شيئًا مثل التعبيرات النمطية هي استخدام هذا التنسيق.
لذا يمكنني أن أقول r e dot ثم استخدم البحث هنا.
وكما ترون هنا ، نعطيها نمطًا وخيطًا وبعض الأعلام.
سنتحدث عن ذلك بعد قليل.
لذا كل ما نحتاج إلى قوله هو ما هو النمط الذي تريد أن تفعله؟
حسنًا ، أريد البحث عما إذا كان هذا موجودًا في السلسلة حتى يمكنني قول هذا.
ثم أعطها السلسلة الفعلية.
في حالتنا هذه.
حسنًا ، هذا هو خيطنا.
لذلك إذا قمت بتشغيل هذا.
حسنًا ، دعنا نطبع ما يحدث هنا.
لذلك دعونا نطبع.
إذا قمت بالنقر فوق تشغيل.
حسنا.
أحصل على ما أسميه كائن تطابق.
يعطينا التعبير النمطي ناتجًا ، ليس فقط صواب أو خطأ ، بل كائنًا فعليًا يخبرنا بمزيد من المعلومات
حول هذا الأمر.
ويمكنك أن ترى هنا ، أحد المعلومات هو الامتداد.
لذلك ، حيث يحدث في السلسلة ، يحدث عند الفهرس 17 وينتهي عند الفهرس 21.
لذلك هذا مفيد حقًا.
دعنا نخزن هذه المعلومات ونقول فقط هنا.
إذن ماذا يمكننا أن نفعل مع كائن المطابقة هذا؟
حسنًا ، أول شيء يمكننا فعله هو التحقق مما لدينا.
إذن لدينا ، أولاً وقبل كل شيء ، الامتداد الذي رأيناه.
وإذا قمت بتشغيل هذا.
يخبرني أين تحدث السلسلة على شكل صف.
إذن ، فهرس 17 إلى فهرس 21.
يمكنني أيضًا البدء والبدء.
حسنًا ، يخبرني عندما يبدأ النص ويمكنني أيضًا أن أقوم بعمل مجموعة أو في الواقع يمكنني أيضًا إنهاء العمل لإظهار
أين ينتهي.
وبعد ذلك يمكنني أيضًا أن تقوم المجموعة والمجموعة بإرجاع جزء من السلسلة حيث كان هناك تطابق ودعنا نقول أنه
كان هناك شيء آخر هنا إذا قمت بالنقر فوق تشغيل ، هل ترى ذلك؟
حسنًا ، هذا يعطيني فقط قطعة أو جزء من الخيط الذي كان هناك تطابق.
تعد المجموعة الآن مفيدة حقًا عندما نحاول إجراء عمليات بحث متعددة.
لذلك في حالتنا ، نحن نقوم ببحث واحد فقط.
لذلك لدينا نمط نحاول مطابقته ، ولكن هناك طرق يمكننا من خلالها إجراء عمليات بحث
متعددة في سطر واحد.
لكن قبل أن أوضح لك ذلك ، ماذا يحدث إذا فعلنا شيئًا غير موجود مثل هذا
بحرف S كبير؟
إذا قمت بالنقر فوق تشغيل.
لقد تلقيت خطأ لأن A الآن لن يكون بلا لأنه إذا لم يعثر التعبير العادي على أي شيء ، فلن
يُرجع أي شيء.
لذلك إما أن يقوم بإرجاع كائن مطابق أو لا شيء.
الآن ، كيف يمكننا جعل هذا أكثر تقدمًا؟
حسنًا ، هناك شيء واحد يمكننا القيام به وهو إنشاء نمط نريد التحقق منه.
لنفترض هنا النمط وهذا النمط ، سنستخدم التعبير النقطي التجميعي.
وسيسمح لنا التجميع بإعطاء ، كما فعلنا هنا ، نمطًا.
دعنا نقول هنا ، أنا ببساطة أريد التحقق من ذلك.
الآن ، هذا النمط يمكنني استخدامه بدلاً من البحث فقط.
يمكنني فقط استخدام النمط الآن.
للقيام بالبحث عني.
لذا ، مرة أخرى ، إذا قمت بتشغيل هذا.
حسنًا ، الآن لست مضطرًا لتمرير هذا الأمر.
أحتاج فقط إلى تمرير السلسلة التي نريد البحث عنها.
تأكد من أن هذا يتم التقاطه ويمكنني استخدام النمط الآن في كل مكان عدة مرات.
لنفترض أنه يمكنني عمل نمط نقطي.
كل الأساليب التي لدينا ، لدينا الكثير في الواقع.
اسمحوا لي أن أريكم بعض من المفيد منها.
لقد وجدنا كل ما يجد كل.
مثيلات المباراة.
لذلك دعنا نقول هنا.
وانقر فوق تشغيل.
انظر إلى ذلك.
لدي هذا.
وهذا.
لذلك أحصل على كلا المثالين من هذا داخل قائمة.
يمكنني أيضًا أن أفعل شيئًا مثل مباراة كاملة ومباراة كاملة.
حسنًا ، تأكد من أن كل شيء يتطابق تمامًا.
لذلك إذا قمت بالنقر فوق تشغيل هنا ، فلنطبع ، انظر هنا ، انقر فوق تشغيل.
لا أحصل على أي شيء لأنني لا أحصل على مباراة كاملة.
من أجل مباراة كاملة لإرجاع المباراة.
يجب أن يكون هو بالضبط السلسلة التي نبحث عنها.
لذلك إذا قمت بالنقر فوق تشغيل.
ها أنت ذا.
أحصل على كائن تطابق الآن.
الآن ، لنفترض أن لدي علامة استفهام هنا بدلاً من علامة التعجب إذا قمت بالنقر فوق تشغيل.
لا شيء إذا كانت لدي علامة تعجب وربما شيء آخر بعد ذلك.
ما زلت لا أحصل على شيء.
لدينا أيضًا خيار آخر مطابق.
والمطابقة ، كما ترى ، تطابق صفرًا أو أكثر من الأحرف في بداية السلسلة.
لذا إذا قمت بعمل سلسلة هنا وقمت بطباعة dx جيدًا ، دعني أغير هذا الأمر.
لنفعل هنا Andre في السلسلة التي نقارنها بالفعل وإذا نقرت فوق تشغيل.
ما زلت أحصل على كائن تطابق مقابل ما إذا كنت أرى أي كائن يستخدم التطابق الكامل.
هذا لا يعطيني شيئًا لأننا ، حسنًا ، نريد فقط تطابقًا تامًا هنا مقابل تطابق يطابق السلسلة ثم
لا نهتم بما سيأتي بعد ذلك.
لذلك هذا مفيد للغاية.
لكن حتى الآن ، أعني ، لدينا طريقتان يمكننا استخدامهما وهي مفيدة جدًا
، لكن هذا لا يبدو بهذه القوة.
لماذا كل اللغات لها تعبيرات نمطية؟
لماذا نهتم حقا؟
حسنًا ، في الفيديو التالي ، سنستكشف فكرة النمط وكيف يمكننا عمل بعض الأنماط
المتقدمة حقًا.
سأراك في الفيديو التالي.
مع السلامة.