اذهب إلى المحتوى
  • 0

كيف أُهرب المحارف الخاصة في التعابير النمطية في بايثون؟

Blackhacker

السؤال

هل يملك بايثون دالة خاصة تُمكنني من تهريب المحارف الخاصة في التعابير النمطية؟ مثلا I'm "stuck" :\ ستصبح كهذه I\'m \"stuck\" :\\

تم التعديل في بواسطة Blackhacker
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

نعم، يوجد عدة طرق في بايثون لفعل ذلك، فيمكنك على سبيل المثال استخدام دالة escape من وحدة re المتخصصة بالتعابير النمطية لتهريب المحارف كما في الأمثلة التالية:

re.escape(string)
>>> re.escape('\ a.*$')
'\\\\\\ a\\.\\*\\$'
>>> print(re.escape('\ a.*$'))
\\\ a\.\*\$
>>> re.escape('www.stackoverflow.com')
'www\\.stackoverflow\\.com'
>>> print(re.escape('www.stackoverflow.com'))
www\.stackoverflow\.com

التوثيق الرسمي يُعرف الدالة كتالي:

ترجع هذه الدالة سلسلة نصية مع وضع خط مائل خلفي لجميع المحارف غير الحرفية...

أو يمكنك فعل نفس الشيء عن طريق استخدام دالة sub من نفس المكتبة وبطرق متعددة كما في المثال التالي:

import re
print re.sub(r'([\"])',    r'\\\1', 'it\'s "this"')  # it's \"this\"
print re.sub(r"([\'])",    r'\\\1', 'it\'s "this"')  # it\'s "this"
print re.sub(r'([\" \'])', r'\\\1', 'it\'s "this"')  # it\'s\ \"this\"
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...