[0-9a-fA-F]

r e a d y

New member
[0-9a-fA-F]

ראיתי שמדברים פה גם על Regex, ובדיוק אני קורא את המדריך : http://www.regular-expressions.info/charclass.html לכן שאלה : 1. בלינק הנ"ל, יש את הדוגמא : [0-9a-fA-F] וכתוב : matches a single hexadecimal digit, case insensitively מדוע ? לפי מה שאני מבין, ההתאמה היא לתו אחד, הנמצא בין אחד הטווחים : 0 עד 9 או a עד f או A עד F היכן אני טועה ? 2. באותו עמוד יש את הדוגמא : [0-9a-fxA-FX] וההתאמה : matches a hexadecimal digit or the letter X. למה ? matches a hexadecimal digit or - OK, מובן, אבל מדוע "או את האות X" ? * יש לי הרגשה שחוסר ההבנה שלי זהה בשתי הדוגמאות, מה זה a-fx ? או a-f ?
 

yuval k

New member
../images/Emo26.gif

כאשר מגדירים אפשרויות לאותיות (בין סוגריים מרובעים), הוא יכול להתאים לאותיות שמופיעות בפנים, או לטווחים שמופיעים שם. אם יש את התו ^ בתחילת הרשימה, הוא יתאים לאותיות שלא שייכות לקבוצה הנ"ל. כך, בדוגמה שלך, [0-9a-fA-F] יתאים לאות שהיא אחת מהאותיות 0-9, a-f או A-F. זוהי ספרה בבסיס 16 (hexadecimal). בדוגמה השניה, הקבוצה מוגדרת כ-[0-9a-fxA-FX], שתתאים לאות מהטווחים 0-9, a-f, A-F או לאותיות x או X. הן לא קשורות לטווחים שהוגדרו.
[a-f] = [abcdef] [a-fx] = [abcdefx]​
 

r e a d y

New member
ועוד ../images/Emo13.gif

^\d+$​
^ שלא בתוך סוגרים מרובעים אומר : שהמחרוזת תתחיל בתו שבא אחרי. $ אומר : שהמחרוזת תסתיים בתו שבא לפני. ולכן הדוגמא שלמעלה תתאים למחרוזת שהתו הראשון שלה, וגם האחרון שלה - הוא סיפרה ? ואגב, מה משמעות ה + ?
 

yuval k

New member
נכון מאוד.

+ אומר שיש את תת-התבנית הזו פעם אחת או יותר.
 

r e a d y

New member
111abc7 עונה על התבנית ?

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

yuval k

New member
זה לא...

d = 0-9\ לכן, $+d\^ מתאים רק למחרוזות בהן יש רק ספרה אחת או יותר, ולא שום תו אחר...
 

yuval k

New member
כדי להגדיר ששם סוף המחרוזת...

אחרת זה היה מתאים גם למחרוזת
3462457na​
למשל - היא מתחילה במספרים. ה-$ בסופה כופה את סיום המחרוזת מיד אחרי התבנית שהוגדרה.
 
למעלה