تعد خوارزمية البحث عن النص طريقة أساسية في معالجة النصوص واسترجاع المعلومات. تسمح لنا هذه الخوارزمية بتحديد وتحديد تكرارات سلسلة فرعية(أو نمط) داخل جزء أكبر من النص.
كيف تعمل
- ابدأ بجزء أكبر من النص(أو المستند) وسلسلة فرعية للبحث عنها.
- كرر خلال كل حرف من أحرف النص بالتسلسل.
- قارن السلسلة الفرعية بجزء من النص له نفس طول السلسلة الفرعية. إذا تم العثور على تطابق ، قم بتسجيل الموضع الحالي.
- انتقل إلى الموضع التالي واستمر في المقارنة.
مثال
ضع في اعتبارك النص: "دعونا نبحث عن سلسلة فرعية داخل هذا النص لنرى كيف تعمل الخوارزمية."
والسلسلة الفرعية للبحث عن: "substring"
- ابدأ من الموضع 0. قارن
Let'
مع "سلسلة فرعية". لا تطابق. - الانتقال إلى الموضع 1. قارن
et's
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 2. قارن
t's
"مع" سلسلة فرعية. لا يوجد تطابق. - انتقل إلى الموضع 3. قارن
's s
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 4. قارن
se
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 5. قارن
sea
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 6. قارن
earc
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 7. قارن
arch
مع "سلسلة فرعية". لا تطابق. - الانتقال إلى الموضع 8. قارن
rch
"مع" سلسلة فرعية. لا يوجد تطابق. - انتقل إلى الموضع 9. قارن
ch w
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 10. قارن
h wi
مع "سلسلة فرعية". لا تطابق. - الانتقال إلى الموضع 11. قارن "
wit
مع" سلسلة فرعية. لا يوجد تطابق. - انتقل إلى الموضع 12. قارن
with
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 13. قارن
ithi
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 14. قارن
thin
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 15. قارن
hinn
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 16. قارن
in t
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 17. قارن
n th
مع "سلسلة فرعية". لا تطابق. - الانتقال إلى الموضع 18. قارن "
thi
مع" سلسلة فرعية. لا يوجد تطابق. - انتقل إلى الموضع 19. قارن
this
مع "سلسلة فرعية". لا تطابق. - الانتقال إلى الموضع 20. قارن
his
"مع" سلسلة فرعية. لا يوجد تطابق. - انتقل إلى الموضع 21. قارن
is t
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 22. قارن
s te
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 23. قارن
ubst
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 24. قارن
bstr
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 25. قارن
stre
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 26. قارن
trin
مع "سلسلة فرعية". لا تطابق. - انتقل إلى الموضع 27. قارن
ring
مع "سلسلة فرعية". تم العثور على المباراة ، رقم قياسي 27.
تم العثور على السلسلة الفرعية "السلسلة الفرعية" في الموضع 27 داخل النص.
رمز المثال في C ++
في هذا المثال ، textSearch
يتم استخدام الوظيفة للعثور على مواضع "السلسلة الفرعية" ضمن النص. ستكون النتيجة متجهًا يحتوي على مواضع البداية للمباريات.