للقيام بذلك باستخدام preg_match()
في PHP، يمكنك استخدام التعبير العادي التالي:
php$pattern = '/CN=([^,]+)/';
$string = 'CN=Carina Costa(42353),OU=Administrativos,OU=Amadora,OU=Utilizadores,DC=hluz,DC=ess,DC=local';
preg_match($pattern, $string, $matches);
echo $matches[1]; // سيظهر "Carina Costa(42353)"
في هذا التعبير العادي، /CN=([^,]+)/
:
CN=
: يطابق النص “CN=” بالضبط.([^,]+)
: تعبير فرعي يستخدم للتقاط أي حرف غير فاصلة (,
). تتمثل الفكرة هنا في أن القيمة التي تريد التطابق معها هي أي شيء بين “CN=” والفاصلة التالية.
المزيد من المعلومات
لفهم الكود بشكل أفضل، يمكننا تفسيره بالتفصيل:
-
$pattern = '/CN=([^,]+)/';
: هذا هو نمط التعبير العادي الذي يستخدم للبحث في السلسلة. يبدأ بشرطة مائلة/
وينتهي بها أيضًا. داخل الشرطتين المائلتين، يأتي النمط الرئيسي/CN=([^,]+)/
:CN=
: هذا يحدد النص الذي نريد أن نطابقه بالضبط، وهو “CN=”.([^,]+)
: هذا الجزء هو فقاعة التطابق، وهي عبارة عن أي شيء غير فاصلة (,
). يتم التقاط القيمة التي تأتي بعد “CN=” وحتى الفاصلة القادمة. هذا يسمح بالعثور على الاسم الذي تبحث عنه.
-
$string = 'CN=Carina Costa(42353),OU=Administrativos,OU=Amadora,OU=Utilizadores,DC=hluz,DC=ess,DC=local';
: هذه هي السلسلة التي تريد البحث فيها عن النص المطابق. -
preg_match($pattern, $string, $matches);
: هذا السطر يستخدمpreg_match
للبحث عن نمط في سلسلة. يأخذ ثلاثة مدخلات:- النمط العادي.
- السلسلة التي تريد البحث فيها.
- متغير لتخزين النتائج المطابقة.
-
echo $matches[1];
: بعد استخدامpreg_match
، ستكون النتيجة في مصفوفة$matches
.$matches[0]
يحتوي على النص الكامل الذي تطابق مع النمط، و$matches[1]
يحتوي على القيمة التي تم التقاطها داخل الفقاعة([^,]+)
، وهي “Carina Costa(42353)” في هذه الحالة.
بهذه الطريقة، يمكنك استخدام preg_match
في PHP للبحث عن نصوص معينة داخل سلاسل أخرى بناءً على أنماط محددة.