אם נחפש מחרוזת המתחילה ב-
"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
הופך לאופציונלי וניתן לוותר עליו ולהמשיך לכתוב ביטויים רגולריים כרגיל.
להוספת תגובה, אנא התחברו לדרכונט.