• 0

كيف أحذف جميع الحروف في سلسلة نصية في بايثون؟

أريد حذف جميع الحروف الموجودة في سلسلة نصية باستثناء الأرقام فما الطريقة الصحيحة لفعل ذلك في بايثون؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

ستجد في بايثون عدّة أساليب لفعل ذلك، فإذا كنت تستعمل الإصدار الثاني من بايثون فيمكنك استخدام دوال 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'

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن