Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

البحث في النصوص

جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 3 من 56.

ثلاثة فحوصات سريعة لمعرفة ما إذا كانت سلسلة فرعية موجودة داخل أخرى:

let email = "alice@coddy.tech"
print(email.contains("@"))         // true
print(email.hasPrefix("alice"))    // true
print(email.hasSuffix(".tech"))    // true

contains يأخذ أي سلسلة فرعية، بينما hasPrefix و hasSuffix ينظران فقط إلى البداية أو النهاية. جميعها حساسة لحالة الأحرف، لذا قم بتحويل السلسلة إلى أحرف صغيرة أولاً إذا كان ذلك يهم.

اجمع بين هذه مع ! لإجراء اختبار "مفقود" سريع:

if !email.contains("@") {
    print("not a valid email")
}
challenge icon

التحدي

سهل

اقرأ سطراً واحداً من المدخلات. تحقق من صحته كـ بريد إلكتروني بسيط من خلال التحقق من كل مما يلي:

  • يحتوي على @ واحدة بالضبط (استخدم filter + count على الأحرف)
  • لا يبدأ ولا ينتهي بـ @
  • ينتهي بـ .tech، أو .com، أو .org (غير حساس لحالة الأحرف)

اطبع valid عندما تنجح جميع عمليات التحقق، وإلا اطبع invalid. قارن مع نسخة المدخلات المحولة إلى أحرف صغيرة (lower-cased).

للمدخل alice@CODDY.TECH، المخرج هو valid.

ورقة مرجعية

تحقق مما إذا كانت السلسلة النصية تحتوي على سلسلة فرعية، أو تبدأ/تنتهي بها:

let email = "alice@coddy.tech"
email.contains("@")        // true – في أي مكان في السلسلة النصية
email.hasPrefix("alice")   // true – في البداية
email.hasSuffix(".tech")   // true – في النهاية

جميع الحالات الثلاث حساسة لحالة الأحرف. استخدم .lowercased() أولاً إذا لزم الأمر:

email.lowercased().hasSuffix(".tech")

استخدم ! لاختبار الغياب:

if !email.contains("@") { print("not a valid email") }

جرّب بنفسك

let line = readLine()!

// TODO: التحقق من وجود رمز '@' واحد فقط، ليس في الأطراف، وأن تكون اللاحقة ضمن [.tech .com .org]
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتدفق