للبحث عن كلمة محمد داخل نص مثلا أم ماذا تريد ؟
عموما
. معناها أي حرف
+ معناها تكرار مرة أو أكثر
* معناها تكرار ولكن يزيد فيها صفر ( يعني موجودة أو غير موجودة ولو موجودة ممكن مكررة - يعني تساوي + ويزيد معاها صفر اي غير موجودة )
؟ معناها موجودة أو غير موجودة فقط ( لا تكرار فيها )
وبالتالي
F(.*)G معناها أي شيئ موجود بين ل FG مهما كان أو قد لا يكون شيئ وتكون FG خلف بعضها مباشرة
F(.+)G معناها يجب أن يكون بين F و G علي الأقل حرف أو رمز واحد ولكن قد يكون أكثر
FT?G معناها FG أو FTG
مثلا للتحقق من رابط تستخدم
HTTPS?\/\/WWW معناها ال S ممكن تكون موجودة أو لا والباك أسلاش للتوضيح أن الرمز هو نص عادي مكتوب وليس شيئ من التعابير القياسية
أي أنك للتحقق وإخراج الأثمان بالدولار من نص ستستخدم \$ لأن $ هنا نص يأتي خلفه أرقام وليس شيئ من التعابير
فبدون الباك أسلاش سيكون معناه تحديد البداية في التعابير القياسية
هذا شرح سريع ولكن التعابير القياسية واسعة المجال وحسب الدوال اللي تستخدمها معها في ال PHP يكون الناتج
فهناك دوال تقص وهناك دوال تتحقق فقط وتعود بالقيمة 1 أو صفر وهناك دوال تجيب لك كل المتوافق مثل PREG_MATCH_ALL
أنصحك بكتاب Teach Yourself Regular Expressions In 10 Minutes
__________________
السيف أصدق أنباء من الكتب