אתה נמצא כאן יסודות השפה  »  התאמת מחרוזות  »  חיפוש תת מחרוזת

מציאת תת-מחרוזת

חיפוש מופע ראשון

מציאה של תת מחרוזת בתוך מחרוזת גדולה יותר, היא פעולה פשוטה בפרל, משום שקיימת פונקצית ספרייה שעושה את זה.
הפונקציה  index מקבלת מחרוזת ותת-מחרוזת, ומחזירה את האידקס (המיקום) של התו הראשון של המופע הראשון (ההתאמה הראשונה) של תת המחרוזת במחרוזת הגדולה.
אם לא נמצאה התאמה, הפונקציה תחזיר את הערך -1.
שני הארגומנטים לפונקציה יכולים להיות מחרוזת, משתנה שמכיל מחרוזת, או פונקציה/ביטוי שמחזירים מחרוזת.
דוגמא:

#!/usr/local/bin/perl

$found = index("d. where is the first d?","d");
/*הפונקציה תחזיר 0 כי זה המיקום של המופע הראשון של d*/

$day="monday";
$found = index("sunday or monday",$day);
/*יוחזר האינדקס 10*/

מציאת מופעים נוספים

 index יכולה לקבל שלושה ארגומנטים - מרוזת, תת-מחרוזת, והאינדקס המינימלי שממנו היא תתחיל לחפש. הערך המוחזר יהיה גדול או שווה לאינדקס המינימלי, או -1 במקרה של כישלון.
דוגמא לתכנית שמחפשת את כל המופעים של תתמחרוזת המחרוזת אחרת:

#!/usr/local/bin/perl

$source_string = "this is a very long string with many i's in it";
$looking_for = "i";
$found = index($source_string,$looking_for);
#קודם מחפשים את המופע הראשוןwhile ($found != -1) { #ממשיכים כל עוד יש מופעים חדשים
    print "found at $found";
    $found = index($source_string,$looking_for,$found+1);
/*נמשיך לחפש ממקום אחד אחרי המקום שמצאנו*/

}

חיפוש מהסוף להתחלה

 rindex מבצעת את אותה פעולת חיפוש, אבל מתחילה מסוף המחרוזת. האינדקס שמוחזר הוא המיקום מתחילת המחרוזת האות הראשונה של המופע שנמצא.









להוספת תגובה, אנא התחברו לדרכונט.