לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 14-10-2006, 22:26
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 1 שנכתבה על ידי DCD שמתחילה ב "ביטויים רגולריים - ההבדלים בין הסוגריים (מרובעות לעגולות)"

סוגריים מרובעות = מחלקת תווים
סוגריים עגולות = תת תבנית

תת תבנית מאפשרת מספר דברים, אחד מהם זה לאפשר שימוש באופרטור "OR" הידוע.
(DCD|NET) = או DCD או NET
internet
קוד:
int(er|ra)net = internet OR intranet

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

במחלקת תווים כל תו משמש כ-OR, כל אחד מהתווים שבמחלקה יכול להתאים למחרוזת, אבל רק פעם אחת (אלא אם צויין אחרת), לחילופין ניתן להגדיר שכל התווים מתאימים חוץ מכל אחד מהתווים שציינו במחלקה.
אפשרות נוספת היא להגדיר טווח של תווים א-ת, a-f, 0-9 ועוד.
קוד:
/int[er][ra]net/ = internet OR intranet OR inteanet OR intrrnet /int[re][ar]net/ = internet OR intranet OR inteanet OR intrrnet /int[er][ra]net/ = internet OR intranet OR inteanet OR intrrnet /int[re][ra]net/ = internet OR intranet OR inteanet OR intrrnet

התו הראשון לאחר int יכול להיות e או r, התו השני יכול להיות r או a ואח"כ net. (זה לא הפתרון החכם להתאמה למילים אלו, אך זה לצורך הפשטות).

נערך לאחרונה ע"י ישראל K בתאריך 14-10-2006 בשעה 22:34.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 14-10-2006, 22:42
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 2 שנכתבה על ידי ישראל K שמתחילה ב "סוגריים מרובעות = מחלקת..."

אוקי...

אז העיקרון של הסוגריים העגולות זה לבצע פעולת OR (מבין כל התפקידים של הסוגריים האלו).

והעיקרון של הסוגריים המרובעות זה הגדרת טווח של תווים מסוימים, או התאמה \ אי-התאמה של תווים במחלקה.

אני צודק?

בקשר לסוגריים המסולסלות הבנתי אותם...התכוונתי לעגולות והמרובעות :|

ועוד כמה שאלות:

1. אם אני עושה:
קוד:
(a-z)

במה זה שונה מהפעולה המקובלת והתקינה:
קוד:
[a-z]

?

2. מתי התו ^ מבצע ניגוד של תווים? זאת אומרת שהוא מגדיר שהתווים המסויימים לא יהיו במחלקה? זה עושה את זה רק כשהסוגריים מרובעות ולא עגולות?

3. האם כשאני עושה:

קוד:
(er|td){2,}

אז הייחוס החוזר מתייחס לסוגריים כולם?
ואם אני יעשה:
קוד:
(sdfg)(er|td){2,}

זה ייתייחס לסוגריים הראשונות או השניות או שניהם?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 15-10-2006, 14:12
  Fixxxer Fixxxer אינו מחובר  
 
חבר מתאריך: 21.09.02
הודעות: 408
בתגובה להודעה מספר 3 שנכתבה על ידי DCD שמתחילה ב "אוקי... אז העיקרון של..."

1. במקרה של הסוגריים העגולים התאמה תיהיה במידה המחרוזת היא 'a-z', לעומת הסוגריים המרובעים שבהם התאמה תיהיה כל תו בין a ל z (קטנים, חשוב לזכור).

2. התו ^ מבצע ניגוד תווים אך ורק בסוגריים מרובעות. השימוש בו נעשה ככה שחייבים לשים אותו בתחילת המחרוזת הפנימית, לדוגמא:
קוד:
[^a-z]

הטווח התאמה יהיה כל תו חוץ מתווים בין a ל z.

3. בדוגמא הראשונה שלך יש באמת ייחוס לסוגריים כולם. הכוונה היא שהתוכן הפנימי של הסוגריים חייב לחזור לפחות פעמיים. לדוגמא: זה יכול ליהיות erer, tdtd, ertder... וכו'
ולגבי הדוגמא השניים, הייחוס או לסוגריים השניות בלבד. הגדרה תקפה רק לגבי הסוגריים הצמודות ביותר אליה. במידה והייתה רוצה שזה יהיה תקפ על שנייהם, יש צורך להציב סוגריים מסביב לכל הביטוי ואת הסוגריים המסולסלות מבחוץ.

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

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 03:55

הדף נוצר ב 0.05 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר