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

أساسيات Regular Expressions

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 46 من 59.

تُعد التعبيرات النمطية (regex) أنماطاً تُستخدم للبحث عن السلاسل النصية والتحقق من صحتها. في لغة Java، نستخدم التابع matches() للتحقق مما إذا كانت السلسلة النصية تطابق نمطاً معيناً.

تحقق مما إذا كانت السلسلة النصية تحتوي على أرقام فقط:

String text = "12345";
boolean isMatch = text.matches("[0-9]+");

بعد تنفيذ الكود أعلاه، يحتوي isMatch على:

true

تحقق مما إذا كانت السلسلة النصية تحتوي على أحرف فقط:

String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");

بعد تنفيذ الكود أعلاه، يحتوي isMatch على:

true

challenge icon

التحدي

سهل

قم بإنشاء طريقة (method) تسمى validateInput تأخذ وسيطين:

  1. سلسلة نصية (text) للتحقق من صحتها
  2. سلسلة نصية (type) تحدد نوع التحقق

يجب أن تقوم الطريقة بالتحقق من النص بناءً على هذه الأنواع:

  • "number": يجب أن يحتوي على أرقام فقط (0-9)
  • "word": يجب أن يحتوي على أحرف فقط (a-z أو A-Z)
  • "email": يجب أن يحتوي على @ وحرف واحد على الأقل قبله
  • "phone": يجب أن يحتوي على 10 أرقام بالضبط

يجب أن تكون رسائل الإرجاع كما يلي:

  • إذا كان النص null: أرجع "Invalid input"
  • إذا كان النوع غير صالح: أرجع "Invalid type"
  • إذا نجح التحقق: أرجع "Valid"
  • إذا فشل التحقق: أرجع "Invalid"

ورقة مرجعية

التعبيرات النمطية (regex) هي أنماط تُستخدم للبحث عن السلاسل النصية والتحقق من صحتها. في Java، استخدم الطريقة matches() للتحقق مما إذا كانت السلسلة النصية تطابق نمطاً معيناً.

تحقق مما إذا كانت السلسلة النصية تحتوي على أرقام فقط:

String text = "12345";
boolean isMatch = text.matches("[0-9]+");

تحقق مما إذا كانت السلسلة النصية تحتوي على حروف فقط:

String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");

أنماط regex الشائعة:

  • [0-9]+ - رقم واحد أو أكثر
  • [a-zA-Z]+ - حرف واحد أو أكثر
  • [0-9]{10} - 10 أرقام بالضبط
  • .+@.+ - تحتوي على @ مع وجود حرف واحد على الأقل قبلها

جرّب بنفسك

import java.util.Scanner;

public class Main {
    public static String validateInput(String text, String type) {
        // اكتب كودك هنا
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        String type = scanner.nextLine();
        
        if (text.equals("null")) text = null;
        System.out.println(validateInput(text, type));
    }
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow