TO DONATE : BTC => 1D8Aq4q2jQnvGD1GaK9vbNwKgm1K5zUEWL || PM => U4089661


اهم قوانين :1- منع الردود الباهتة مثل شكرااااا و أخواتها 2- لا يسمح بالمشاحنات الطائفية باآ شكل من الأشكال 3- عدم استعمال الألفاظ التافهة و الكلام البذىء 4- عدم وضع معرفات التواصل الأجتماعى بالردود 5- الأطلاع على كامل القوانين واجب 


العودة   الحماية للأبد -Security 4 Ever > قسم البرمجـــة > لغات البرمجة التفسيرية

لغات البرمجة التفسيرية قسم مختص بالبرمجة التفسيرية مثل :
PHP, java, perl, Python, Bash, Shell script, JPython, AutoIt, Z shell, AWK, VB Script

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 03-06-2019, 06:52 AM
الصورة الرمزية zero-cool
zero-cool
:: عضو خاص ::
 
حـالة التــواجـد : zero-cool غير متواجد حالياً
تاريخ التسجيل: Apr 2016
الجــــنــــــس: ذكـر
المشاركات: 74
شكراً:48
تم شكره 254 مرة في 59 مشاركة
معدل تقييم المستوى: 0
zero-cool بدون تقييم
افتراضي Python Regular Expressions .. Part 2

السلام عليكم ورحمة الله وبركاته


إن شاء الله تكونوا في تمام الصحة والعافية إخواني




عادة ، ستجد أن \w أو \d إما محددين للغاية أو غير محددين بما يكفي لمطابقة البيانات الدقيقة التي تريد استخراجها.
على سبيل المثال ، ضع في اعتبارك مطابقة سلاسل التاريخ مثل 12/08/99.
يمكنك إنشاء تعبير نمطي "\d\d/\d\d/\d/d" ، لكن هذا سيتطابق أيضًا مع التواريخ غير الصحيحة 99/99/99.
يمكنك بناء مجموعات الرموز الخاصة بك لتتناسب مع ما تحتاجه بالضبط.

يتم إرفاق مجموعات الرموز المخصصة داخل {} مفتوحة أو مغلقة .
يمكنك سرد رموز فردية داخل ال brackets ، أو يمكنك سرد مجموعة من الرموز.

الآن ، دعونا نحاول العثور على تاريخ أفضل يطابق التعبير النمطي.
لننظر في هذا التعبير النمطي:
كود:
r"[01]\d/[0-3]\d/\d\d."
سيتطابق هذا مع أي شيء يبدأ برقم 0 أو متبوعا برقم 0-9 ، ثم / لفصل الشهر عن اليوم.
هذا جيد لأنه ليس لدينا 20 شهرا أو أكثر.
بعد ذلك ، يجب أن يكون هناك رقم بين 0 و 3 ، متبوعًا بأي رقم و /
هذا جيد لأنه ليس لدينا أي شهر مع 40 يوما أو أكثر.
بعد ذلك ، يمكننا الحصول على أي رقمين في عامنا.
عندما نجرب هذا التعبير النمطي ، نجد أنه يلغي التاريخ غير الصحيح ك 77/77/77
هذا التعبير النمطي يلغي أيضا تواريخ مثل 37/41/01 ،15/76/19 ، وهلم جرا.
هذا جيد ، لكنه سيظل متطابقا في تواريخ غير صالحة.
على سبيل المثال ، سيظل يجد تواريخ مثل 14/34/00 أو 00/32/87.
نحن بحاجة لمزيد من القوة!!

يتم استخدام رمز | لإنشاء عبارة OR منطقية.

كود PHP:
>>> refindall("we|my""welcome to my world")
[
'we''my'
إذا كنت تستخدم أقواس قياسية (تسمى capture group) ، فستستخلص العبارة جزءا فقط من السلسلة المطابقة.
انتبه إلى أن "؟:" تغلق هذه الوظيفة وتسمح باستخدام الأقواس لتأسيس ترتيب العمليات بدلاً من استخراج سلسلة فرعية.
إذا كنت تريد التقاط حرف بدل التعبير النمطي السابق ، فسيتعين عليك استخدام non-capture group لتجميع العبارة "or":

كود PHP:
>>> re.findall("(?:we|my)." "welcom to my world")
[
'wel''my '
تخيل أننا نريد مطابقة أشهر صالحة في سلسلة التاريخ.
يمكننا مطابقة الرقم 0 متبوعًا بالرقم 1 إلى 9.
هذا سوف يطابق 01 و 02 و 03 وما إلى ذلك.
لكننا نريد أيضًا مطابقة الرقم 1 متبوعًا بالرقم 0 أو 1 أو 2 (أي 10 و 11 و 12).
إذا كنت ترغب في إنشاء التعبير المنطقي or باستخدام تعبيرات Python النمطية ، فإن بناء الجملة (؟: match1 | match2) يمنحك مرونة هائلة.

يمكن أن يكون عدد أيام الشهر بين 01 و 31.
لذلك ، يمكننا أن نطابق أي رقم يبدأ بـ 0 متبوعا بالرقم 1 إلى 9 أو برقم 1 أو 2 متبوعًا بالرقم 0 إلى 9 أو 3 متبوعا بالرقم 0 أو 1.

الآن ، يمكننا إزالة التواريخ مثل 14/35/12.

دعنا نستخدم هذا لمطابقة الأشهر بين 01 و 12.

كود PHP:
>>> re.findall(r"(0[0-9]|1[0-2])""14/05/88 10/22/99")
[
'05''10'
والأيام من 01 إلى 31.

كود PHP:
>>> re.findall(r"(0[1-9]|[1-2][0-9]|3[0-1])","17/35/89 05/18/99")
[
'17''05''18'
دعونا نضعهم معا:

كود PHP:
>>> re.findall("(?:0[0-9]|[1-2])/(?:0[1-9]|[1-2][0-9]|3[0-1])/\d\d""18/25/77 14/32/47 02/25/99")
[
'02/25/99'
هذا تعبير نمطي جيد ، لكنه لا يزال يحتوي على بعض النقائص.
مذا عن 06/31 ؟ فجوان يحتوي على 30 يوم فقط.
ومذا عن 02/29/98 ؟ في سنة غير كبيسة.
لتحديد أن هذا التاريخ الأخير صالح أم لا يجب أن نحدد ماإذا كانت سنة 1998 كبيسة أم لا.

كما ترون ، يمكن أن تصبح التعبيرات النمطية معقدة للغاية ، لكنها قوية للغاية.





بالتوفيق لكم
 

 

 

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

[email protected]
رد مع اقتباس
3 أعضاء قالوا شكراً لـ zero-cool على المشاركة المفيدة:

  #ADS  
Google Adsense Google Adsense is online
اعلانات
 
تاريخ التسجيل: اليوم
الدولة: الحماية للأبد
العمر: 2010
المشاركات: 1
شكراً:48
تم شكره 254 مرة في 59 مشاركة

  #2  
قديم 03-06-2019, 10:36 AM
الصورة الرمزية zero-cool
zero-cool
:: عضو خاص ::
 
حـالة التــواجـد : zero-cool غير متواجد حالياً
تاريخ التسجيل: Apr 2016
الجــــنــــــس: ذكـر
المشاركات: 74
شكراً:48
تم شكره 254 مرة في 59 مشاركة
معدل تقييم المستوى: 0
zero-cool بدون تقييم
افتراضي رد: Python Regular Expressions .. Part 2

يوجد خطأ في آخر كود

كود PHP:
>>> re.findall("(?:0[0-9]|1[0-2])/(?:0[1-9]|[1-2][0-9]|3[0-1])/\d\d""18/25/77 14/32/47 02/25/99")
[
'02/25/99'
 

 

 

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

[email protected]
رد مع اقتباس
الأعضاء الذين قالوا شكراً لـ zero-cool على المشاركة المفيدة:

الكلمات الدلالية (Tags)
.., 2, expressions, part, python, regular


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
Python Regular Expressions .. Part 1 zero-cool لغات البرمجة التفسيرية 0 02-06-2019 11:19 PM
Python File Handling .. Part 2 zero-cool لغات البرمجة التفسيرية 0 02-06-2019 05:02 AM
Python File Handling .. Part 1 zero-cool لغات البرمجة التفسيرية 0 02-06-2019 01:05 AM
دروس تعابير القياسية Regular expression - RegEx n4ss1m لغات البرمجة التفسيرية 11 03-08-2015 12:28 AM
#1337day Adobe Flash Player Regular Expression Object Out-Of-Bound Read Information D inj3ct0r قسم جديد ثغرات مواقع الحماية 0 09-01-2015 11:22 AM


الساعة الآن 07:01 PM