אתה נמצא כאן האופרטור ~= - המשך


אם נחפש מחרוזת המתחילה ב- "ab/c" נכתוב :

print "please enter a string";
if (<STDIN>=~/^ab\/c/
/* */
)
    print "Great, your string begins with ab/c";

הבעייתיות כאן היא שאנו מחפשים את ה- / במחרוזת ופרל יכולה לזהות אותו כסיום הביטוי הרגולרי.
אם היינו כותבים /ab/c^/ בלי ה \ היו לנו יותר מידי / -יםבביטוי הרגולרי ולכן הוספת \ לפני כל / במחרוזת תבטל את ה / ממשמעותו הרגילה, המיוחדת, פרל תתעלם ממנה ותתייחס אליו כאל תו רגיל.
הערה : זה יעיל לחיפוש dir/file_name בתוך המשתנה PATH ב- shell -ים.

על מנת לא להתבלבל מכל הקוים הנטויים ניתן לבחור תו אחר, מיוחד שישמש על תקן ה / . (הקו הנטוי הפותח והסוגר של הביטוי הרגולרי...)

/
/*הקו הנטוי הוא ה delimeter הרגיל שלנו , המציין את תחילת הביטוי הרגולרי */
  ^ab\/c
/*הביטוי הרגולרי בו אנו מחפשים גם / ולכן נאלץ לכתוב במקרה זה \ לפניו . */
  /
/*הקו הנטוי הוא ה delimeter הרגיל שלנו , המציין את סוף הביטוי הרגולרי */

m@
/*ה @ הוא ה delimeter החדש */
  ^ab\c
/*הביטוי הרגולרי בו אנו מחפשים גם / וכאן אין צורך בהשמת \ לפניו. */
  @
/*ה @ הוא ה delimeter החדש המציין את סוף הביטוי הרגולרי */

    # קבעה לנו שמעתה @ פותח וסוגר ביטוי רגורלי ולכן מעתה m ה
    # :אם נרצה לחפש במחרוזת מופע של @ נאלץ בפורמט זה להוסיף \ בצורה הבאה
@^name\@hotmail.com@
/* הביטוי הרגולרי בפורמט החדש */

    # :delimeter עתה נבחר בתו # כ
m#
/*ה # הוא ה delimeter החדש */
  ^ab\c
/*הביטוי הרגולרי בו אנו מחפשים גם / וכאן אין צורך בהשמת \ לפניו. */
  #
/*ה # הוא ה delimeter החדש המציין את סוף הביטוי הרגולרי */

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









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