
28-01-2008, 13:03
|
|
|
|
חבר מתאריך: 25.08.03
הודעות: 9,114
|
|
ההבדל העיקרי הוא שאת הראשון לא תחמת בתגית מתאימה, השתדל בבקשה להבא... 
1. אני מניח שאתה מודע לכך שהקוד אינו תקין, כיון שהפונקציה בה עשית שימוש, מצפה לקבל לפחות שני פרמטרים.
2. א. בפונקציה זו אין לסוגריים את המשמעות העיקרית של השימוש בסוגריים - הגדרת תת תבנית לשימוש חוזר (הסבר להלן).
ב. בדוגמה שהצגת אמנם אין משמעות כלל לסוגריים, אך עדיין תתכן משמעות לסוגריים גם בפונקציה זו - סוגריים משמשות גם לקיבוץ תווים כדי להפריד בין שתי קבוצות תווים עם האופרטור "או" (or).
דוגמה לשימוש ב-"או":
הקוד לעיל יתאים גם ל-go right וגם ל-go left.
לולא הסוגריים, הפרמטר or היה פועל על שני התווים הסמוכים לו בלבד, כך שהביטוי היה מתאים לאחד משתי הדוגמאות הבאים בלבד: go righteft, go righleft.
שימוש בתת תבנית לצורך שימוש חוזר:
/go ([a-zA-Z])/
תוכן הסוגריים (בדוגמה לעיל, המילה שתלכד בתוך הסוגריים - שתענה על הביטוי שבסוגריים) ישמר במשתנה בשם $1 ויהיה ניתן לעשות בו שימוש חוזר. לדוגמה, לצורך החלפה או שרשור מחרוזת מסויימת.
דוגמה מעשית:
קוד PHP:
/<a href=([\S]) >/
replace to: <a href="$1" >
(הסרתי את הסוגר של התג, כיון שהתו הברחה לא מוצג כאן משום מה).
נערך לאחרונה ע"י ישראל K בתאריך 28-01-2008 בשעה 13:06.
|