مطابقة زوج من التعليقات في HTML باستخدام تعبيرات منتظمة

StackOverflow https://stackoverflow.com/questions/756898

سؤال

لدي قالب Mako الذي يبدو مثل هذا:

% if staff:
    <!-- begin staff -->
    ...
    <!-- end staff -->
% endif

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

re.search('<!-- begin staff -->.*<!-- end staff -->', text)

لقد تحققت من أن التعليقات تظهر في إخراج HTML، ولكن التعبير العادي لا يتطابق. لقد حاولت حتى وضع التعليقات (<!-- begin staff --> و <!-- end staff -->) من خلال re.Scape، ولكن لا يزال حظا. ما الخطأ الذي افعله؟

أم أن هناك طريقة أفضل لتشغيل هذا الاختبار؟

هل كانت مفيدة؟

المحلول

بشكل افتراضي . لا تتطابق مع خطوط نيو هناك - تحتاج إلى إضافة re.DOTALL اختيار.

re.search('<!-- begin staff -->.*<!-- end staff -->', text, re.DOTALL)

إذا كان لديك أكثر من قسم موظف واحد، فقد ترغب أيضا في جعل التطهير UGREDY:

re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)

نصائح أخرى

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top