Blackhacker نشر 11 يناير 2016 أرسل تقرير نشر 11 يناير 2016 أريد حذف جميع الحروف الموجودة في سلسلة نصية باستثناء الأرقام فما الطريقة الصحيحة لفعل ذلك في بايثون؟ اقتباس
0 هشام رزق الله نشر 11 يناير 2016 أرسل تقرير نشر 11 يناير 2016 ستجد في بايثون عدّة أساليب لفعل ذلك، فإذا كنت تستعمل الإصدار الثاني من بايثون فيمكنك استخدام دوال maketrans وtranslate وغيرها من وحدة string للحذف كالتالي:>>> x='aaa12333bb445bb54b5b52' >>> import string >>> all=string.maketrans('','') >>> nodigs=all.translate(all, string.digits) >>> x.translate(all, nodigs) '1233344554552' >>> أو يمكنك استخدام التعابير النمطية عن طريق استخدام الرمز \D لمطابقة جميع الأحرف غير رقمية وسوف نستبدلها بسلسلة نصية فارغة كما في المثال التالي:>>> import re >>> re.sub("\D", "", "aas30dsa20") '3020' أو يمكنك استخدام دالة filter مع lambda كما في المثال التالي (بالنسبة للإصدار 2 من بايثون):>>> filter(lambda x: x.isdigit(), "aas30dsa20") '3020' أو عن طريق استخدام السطر التالي إذا كنت تستعمل الإصدار 3 من بايثون:>>> ''.join(filter(lambda x: x.isdigit(), "aas30dsa20")) '3020' اقتباس
السؤال
Blackhacker
أريد حذف جميع الحروف الموجودة في سلسلة نصية باستثناء الأرقام فما الطريقة الصحيحة لفعل ذلك في بايثون؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.