Blackhacker نشر 21 يناير 2016 أرسل تقرير نشر 21 يناير 2016 (معدل) هل يملك بايثون دالة خاصة تُمكنني من تهريب المحارف الخاصة في التعابير النمطية؟ مثلا I'm "stuck" :\ ستصبح كهذه I\'m \"stuck\" :\\ تم التعديل في 21 يناير 2016 بواسطة Blackhacker اقتباس
0 هشام رزق الله نشر 21 يناير 2016 أرسل تقرير نشر 21 يناير 2016 نعم، يوجد عدة طرق في بايثون لفعل ذلك، فيمكنك على سبيل المثال استخدام دالة 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\" اقتباس
السؤال
Blackhacker
هل يملك بايثون دالة خاصة تُمكنني من تهريب المحارف الخاصة في التعابير النمطية؟ مثلا I'm "stuck" :\ ستصبح كهذه I\'m \"stuck\" :\\
تم التعديل في بواسطة Blackhacker1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.