البرمجة

تعديل تعابير Regex لتحسين البحث

في محاولة لفهم وحل استفسارك المتعلق بتعبئة التعبيرات العادية (Regex)، يظهر أن لديك تحدين محددين. أولًا، تحتاج إلى تعديل التعبير العادي الخاص بك ليتناسب مع متطلباتك. للبداية، دعنا ننظر في الأمر الأول:

لاستبعاد /hours_3211 من التوافق مع تعبير ال regex /hours_3[23]/، يمكنك استخدام تعبير الـ negative lookahead لتحقيق ذلك. يكون التعبير النهائي كالتالي:

regex
/hours_3(?:[23](?

الشرح:

  • /hours_3: يتطابق مع "/hours_3".
  • (?:[23](?: مجموعة غير تخزينية ((?:...)) تحتوي على اثنين من الخيارات:
    • [23](?: يتطابق مع "2" أو "3"، ولكن يتأكد من أنه ليس قبلها "211" باستخدام negative lookahead.
    • [0-9]{3}: يتطابق مع أي ثلاثة أرقام.

الآن، بالنسبة للتحدي الثاني:

إذا كنت تريد تعديل تعبير الـ regex /hours_3[45]/ ليشمل /hours_3211 أيضًا، فيمكنك استخدام عبارة أوطم:

regex
/hours_(3[45]|3211)/

الشرح:

  • 3[45]: يتطابق مع "34" أو "35".
  • |: يعني "أو".
  • 3211: يتطابق مع "3211".

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

المزيد من المعلومات

في عالم تعبيرات الـ Regex، يتيح لك استخدام التعابير المناسبة تحقيق نتائج دقيقة ومحددة. الأمثلة السابقة تظهر كيف يمكن تكييف التعبيرات لتلبية احتياجاتك. دعنا نعزز فهمنا لتلك النقاط بمزيد من التوضيح:

  1. Negative Lookahead:
    في التعبير /hours_3(?:[23](?:

    • (?: ... ): يشير إلى مجموعة غير تخزينية لتجميع الأقواس وتطبيق الكمون (Negative Lookahead).
    • [23](?: يعني "2" أو "3" بشرط أنها ليست متبوعة بـ "211"، مما يمنع /hours_3211 من التوافق.
  2. OR Operator:
    في /hours_(3[45]|3211)/:

    • 3[45]: يعني "34" أو "35".
    • |: يعمل كعامل OR لفصل الخيارات.
    • 3211: يتطابق مع "/hours_3211".

تذكير: تعبيرات الـ Regex قوية ولكن قد تكون معقدة، ويفضل دائمًا اختبارها بشكل جيد للتحقق من صحة وكفاءة عملها. يمكنك استخدام مواقع على الإنترنت مثل Regex101 لتجربة التعابير ورؤية كيف تتفاعل مع بياناتك.

الفهم الجيد لتعبيرات الـ Regex يعزز قدرتك على التحكم في تحديد النماذج والبيانات التي تبحث عنها، مما يجعل عملك أكثر فعالية ودقة.

زر الذهاب إلى الأعلى