• 0

كيف أتأكد من أن السلسلة النصية تحتوي على حروف وبعض الرموز فقط في بايثون؟

أريد التأكد من أن  السلسلة النصية تحتوي فقط على حروف وأرقام والخطوط العلوية والسفلية (underscores and dashes) فما أسهل طريقة لفعل ذلك بدون استخدام حلقات التكرار؟

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


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

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

import re

...

if re.match("^[A-Za-z0-9_-]*$", my_little_string):
    # do something here

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

import string
allowed = string.letters + string.digits + '_' + '-'

def check_naive(mystring):
    return all(c in allowed for c in mystring)

طريقة أخرى لفعل ذلك باستخدام التعابير النمطية كالتالي:

CHECK_INV_RE = re.compile('[^a-zA-Z0-9_-]')
def check_inv_re(mystring):
   return not CHECK_INV_RE.search(mystring)

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


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

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

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

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


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

تسجيل الدخول

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


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