NET/ביטוי רגולרי: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Effib (שיחה | תרומות)
Effib (שיחה | תרומות)
הרחבה
שורה 9:
דברים עיקריים שניתן לבצע באמצעות מחלקה זו:
*לבדוק התאמה של מחרוזת לביטוי (פונקציית '''IsMatch'''),
*לקבל את רשימת ההתאמות הנמצאות במחרוזת לביטוי (פונקצייתמחלקת '''Matches''') לתוך משתנה אוסף '''MatchCollection''',. באמצעות שימוש במחלקה זו ניתן גם לקבל את מספרם (Count) של ההתאמות ואף את המיקום (Index) של כל אחת מההתאמות. (ראו דוגמה בהמשך).
*לבצע חיתוך של מחרוזת לפי ההתאמות לביטוי (פונקציית '''Split''') לתוך מערך מחרוזות,
*לבצע החלפות בין תתי מחרוזות במחרוזת (פונקציית '''Replace'''), על פי ביטוי.
שורה 15:
==תוי בקרה בסיסיים==
סימונים בסיסיים לתוי הדפוס של ביטויים רגולריים הם
* אחת מאותיות האלף בית או המספרים - יחפש התאמה בכל מקום שהוא במחרוזת.
* ^ - משמש לסמן את תחילתה של המחרוזת, באם הסימן לא יופיע החיפוש יתבצע בכל מקום עד תחילתה של המחרוזת.
* $ - משמש בכדי לסמן את סופה של המחרוזת, באם סימן זה לא יופיע החיפוש יתבצע בכל מקום במחרוזת עד סופה.
* [] מתאים לכל מה שמוגדר בסוגריים לתו אחד בלבד למשל
* [a-z] - משמש לכל תו נמוך באלפבית האנגלי.
* *[Aa-Zz] - משמש לכל תו גבוהנמוך באלפבית האנגלי.
** [aA-zZ] - משמש לכל תו נמוךגבוה באלפבית האנגלי.
 
** [0-9] - משמש לכל הספרות, לדוגמה הביטוי [5-8] מציין כי התוכנה תחפש ספרות בין 5 ל8.
* \D - מציין כל תו שאינו מספרי.
* \d - מציין כל תו מספרי.
* {} - משמש לסמן את מספר המופעים של תוי הביטוי שמחפשיםשמבוקשים. לדוגמה {2}[A-Z] מציין שהתוכנה תחפש שתי אותיות גדולות. א{2,4} מציין שהתוכנה תחפש מחרוזות שמורכבות מהאות אלף בלבד בגדלים של שניים עד ארבע (אא, אאא, אאא).
* * - משמש לציין מספר תוים לא מוגבל. למשל הביטוי הבא "^[0-9]*$" יבדוק האם כל המחרוזת היא ספרתית, מתחילתה ועד סופה.
* בכדי לסמן כלל התוים להוציא חלק מהם יש לסמן זאת כך: [^a-d] - משמעות ביטוי זה הוא כל התוים להוציא את אלו שבין a ל d.
שורה 45 ⟵ 46:
End If
</source>
 
 
 
====ספירת מספר ההתאמות וקבלת תחילת המיקום של ההתאמה השנייה====
אם ברצוננו לחפש כמה מופעים של תת מחרוזת אחת יש בשנייה וכן את מיקומם המדוייק של תחילת המופעים ניתן לבצע זאת באופן הבא:
 
<source lang="vbnet">
Dim str As String = "ביום גשום הלכו ביחד אבא ובן"
Dim pattern As String = "ב"
Dim AllMatchs As MatchCollection = New Regex(pattern).Matches(str)
Console.WriteLine(AllMatchs.Count & " " & AllMatchs.Item(1).Index)
</source>
 
התוצאה של קוד זה תהיה
:4 15
 
הקוד : AllMatchs.Item(1).Index - נותן את ההתאמה השנייה מפני האיבר הראשון הוא 0.
 
====איתור מילים עם אותיות בכל"מ====
שורה 63 ⟵ 81:
:לתוך
:בתוך
 
 
====בדיקת תאריך====
שורה 79 ⟵ 98:
:השורה השניה (חודשים) - מקבלת לוכסן מפריד, ולאחריה את הספרה 0 עם ספרה מ1 ועד 9 או הספרה 1 עם ספרה שבין 0 ל2.
:השורה השלישית (שנים) - מקבלת לוכסן מפריד, ביחד עם שתי ספרות או ארבע ספרות. תו $ מציין שזו סוף המחרוזת.
 
 
====הסרת תגיות HTML====
שורה 99 ⟵ 119:
==קישורים חיצוניים==
* [http://www.regular-expressions.info/reference.html רשימה של הסימניים ותפקודתם בביטוי רגולרי], אתר regular-expressions
* [http://www.zytrax.com/tech/web/regex.htm ], אתר zytrax.com
 
[[קטגוריה:NET]]