التعامل مع الهمزة و الألف المقصورة

  • fahad_m

السلام عليكم

كما يعلم الكل بأن هناك كلمات باللغة العربية فيها الهمزات و الألف المقصورة والهمزة على الكرسي، ولكن المستخدم حينما يقوم بالبحث فإنه لايضيفها مثلاً:

يكتب (الى) بدلا من (إلى)

استخدم mysql للداتابيس، هل هناك طريقة حينما يقوم المستخدم بكتابة الى بدلا من إلى، تظهر نتائج الى و إلى؟ وغيرها من الكلمات

يعني بأن تتم معاملة شكلي الحرف (أ و إ = ا)

شكرا لكم جميعا.

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

استخدم الـ regex

يعطيك العافيه، شكرا لك

thisisyusuf أضف ردا

سوف تستخدم شيء مثل هذا ولكن يجب معالجة النص العربي

SELECT * FROM #Sample WHERE Field LIKE '%[^a-z0-9 .]%'
وجيه عوض الجيد أضف ردا

وعليكم السلام

يمكن إستخدام التعابير القياسية في التعامل مع الأشكال المتعددة للحروف (سأوضح بمثال )

إختصار المشكلة في الاتي

1- الحروف التي لديها عدد من أشكال الكتابة مثال (أإا)

2- الحروف غير القابلة للالتصاق مع الحروف التالية لها مثال (عبدالله | عبد الله) لاحظ حرف الدال

الحل هو وضع جميع الخيارات في الاستعلام

مثال للبحث عن الإسم "أحمد محمد" سأجعل الاستعلام يبدو كالاتي

select * from tableName where name REGEXP'^[آاأإ ]+حم+[د ]+محم+[د ]' 

هذا السطر يغطي البحث عن كلمة أحمد بكل أشكال رسمها (أحمد - احمد - آحمد - إحمد) ويعالج مشكلة طرق كتابة الحروف غير القابلة للإلتصاق حيث لا يتهم الكثير بعمل مسافة بعده (احمد محمد - احمدمحمد)

شرح العملية بدقة :

  1. تم إستبدال الحرف "أ" بجموعة أحتمالات كتابته "[آاأإ ]" وفي التعابير القياسية ما بين الأقواس [] يكون الرابط بين الحروف هو "او" اي توفر اي من الحروف يعطي نفس نفس النتيجة وهي تعطي (أحمد - احمد - آحمد - إحمد)
  2. تم إستبدال حرف "د" بكل احتمالة اسلوب كتابة الحرف التالي له "[د ]" هنا نخبر النظام ان يبحث في جميع احتمالات ورود حرف الدال سواء كانه بعده مسافة او لا (احمد محمد - احمدمحمد)

كتبت سكريبت بلغة php لتهئية النص بكل خياراته وسأرفق رابط لتحميله

ومتاسف علي تأخر الرد صلتني إشارة للموضوع من قبل @ahmed.alhaj ولكن شغلت عن الرد في نفس اليوم