متى لا تكون تعابير Regex كافية لتحليل النصوص؟
كتبت سابقا مقالا تفاعليا يشرح Regex: مقدمة في تعلم Regex
شرحت فيه عدة أمثلة للمُطابقة (Matching) لكن ما لم يُذكر في المقال أن Regex يفشل أحيانا في معالجة بعض النصوص.
هذه القصاصة تعطي أمثلة على حالات لا يصلح فيها Regex لتحليل النصوص.
التكرار والتداخل Recursion
هذا النمط من المقال يُطابق بعض الـ HTML Tags:
1<(strong|b)>(?<tag_content>.*)<\/(strong|b)>لكن بالنظر إلى الى النص الآتي:
1<strong>Test <b>Bold</b> text</strong>سيتم مطابقة <strong> و </strong> لكن Test <b>Bold</b> text ستُطابق كمجموعة واحدة تحت اسم tag_content.
عند معالجة نمط معين، حيث يمكن لهذا النمط أن يحتوي على نفسه مرة أخرى (كوجود HTML tag داخل HTML tag آخر) فإن Regex يفشل في مطابقتها.
