logo

הדרכה של regex - כיצד לכתוב ביטויים רגילים?

ביטוי רגיל (regex) הוא רצף של תווים המגדירים דפוס חיפוש. הנה כיצד לכתוב ביטויים רגילים:

תחליף js
  1. התחל על ידי הבנת הדמויות המיוחדות המשמשות ב- regex כמו '.' '*' '+' '?' ועוד.
  2. בחר שפת תכנות או כלי התומך ב- regex כמו Python Perl או GREP.
  3. כתוב את התבנית שלך באמצעות הדמויות המיוחדות והתווים המילוליים.
  4. השתמש בפונקציה או בשיטה המתאימים כדי לחפש את התבנית במחרוזת.

דוגמאות:

  1. כדי להתאים רצף של דמויות מילוליות פשוט כותב את הדמויות האלה בתבנית.
  2. כדי להתאים דמות יחידה מתוך קבוצה של אפשרויות להשתמש בסוגריים מרובעים, למשל [0123456789] תואם לכל ספרה.
  3. כדי להתאים לאפס או יותר התרחשויות של הביטוי הקודם השתמש בסמל Star (*).
  4. כדי להתאים התרחשות אחת או יותר של הביטוי הקודם השתמש בסמל פלוס (+).
  5. חשוב לציין ש- regex יכול להיות מורכב וקשה לקריאה, כך שמומלץ להשתמש בכלים כמו בודקי regex כדי לבצע ניפוי באגים ולביצוע אופטימיזציה של הדפוסים שלך.

ביטוי רגיל (המכונה לעיתים ביטוי רציונלי) הוא רצף של תווים המגדירים דפוס חיפוש בעיקר לשימוש בהתאמת דפוסים עם מיתרים או התאמת מיתרים, כלומר 'מצא והחליף' כמו פעולות כמו. ביטויים רגילים הם דרך כללית להתאים דפוסים עם רצפי דמויות. הוא משמש בכל שפת תכנות כמו C ++ Java ו- Python. 



מהו ביטוי רגיל ומה הופך אותו לחשוב כל כך?  

Regex משמש ב Google Analytics בהתאמת כתובות URL בתמיכה בחיפוש ומחליפה בעורכים הפופולריים ביותר כמו Sublime Notepad ++ סוגריים של Google Docs ו- Microsoft Word.

    Example :     Regular expression for an email address :  
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{25})$

ניתן להשתמש בביטוי הרגיל לעיל לבדיקה אם קבוצה נתונה של תווים היא כתובת דוא"ל או לא. 

איך לכתוב ביטויים רגילים?

ישנם אלמנטים מסוימים המשמשים לכתיבת ביטויים רגילים כאמור להלן:



1. משחזרים (* + ו- {})  

סמלים אלה פועלים כשוחזים ואומרים למחשב כי יש להשתמש בתו הקודם ליותר מפעם אחת בלבד.

2. סמל הכוכבית ( *)

זה אומר למחשב להתאים לתו הקודם (או מערך התווים) למשך 0 פעמים או יותר (עד אינסופי).

    Example :    The regular expression ab*c will give ac abc abbc abbbc….and so on 

3. סמל הפלוס ( +)  

זה אומר למחשב לחזור על הדמות הקודמת (או מערך התווים) לפחות פעמים אחת או יותר (עד אינסופית).



Java listnode
    Example :    The regular expression ab+c will give abc abbc  
abbbc … and so on.

4. הפלטה המתולתלת {...}  

זה אומר למחשב לחזור על הדמות הקודמת (או מערך התווים) במשך פעמים רבות מהערך בתוך סוגר זה.

    Example :    {2} means that the preceding character is to be repeated 2   
times {min} means the preceding character is matches min or more
times. {minmax} means that the preceding character is repeated at
least min & at most max times.

5. תו כללי (.) 

סמל הנקודה יכול לתפוס את מקומו של כל סמל אחר וזו הסיבה שהוא נקרא אופי התו.

    Example :      
The Regular expression .* will tell the computer that any character
can be used any number of times.

6. אופי אופציונלי (?)  

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

    Example :      
We may write the format for document file as – docx?
The ‘?’ tells the computer that x may or may not be
present in the name of file format.

7. סמל Caret ( ^) (( הגדרת מיקום למשחק)

סמל CARET אומר למחשב שההתאמה חייבת להתחיל בתחילת המיתר או הקו.

    Example :    ^d{3} will match with patterns like '901' in '901-333-'.

8. סמל הדולר ($)  

זה אומר למחשב שההתאמה חייבת להתרחש בסוף המחרוזת או לפני n בסוף הקו או המחרוזת.

    Example :    -d{3}$ will match with patterns like '-333' in '-901-333'.

9. שיעורי תווים  

מחלקת תווים תואמת לכל אחת מסט דמויות. הוא משמש כדי להתאים לאלמנט הבסיסי ביותר בשפה כמו מכתב לספר חלל סמל וכו '. 


ג : תואם את כל התווים של מרחב הלבן כמו שטח וכרטיסייה.
ג : תואם כל תווים שאינם מרחבים.
ד : תואם כל דמות ספרתית.
D: תואם כל תווים שאינם ספרות.
ב : תואם לכל אופי מילה (בעיקרון אלפא-נומרי)
ב : תואם לכל דמות שאינה מילה.
ב : תואם כל גבול מילים (זה יכלול חללים מקפים פסיקים למחצה וכו 'וכו'.
[set_of_characters]: תואם כל תו יחיד ב- set_of_characters. כברירת מחדל ההתאמה רגישה למקרה.

תקליטון
    Example :    [abc] will match characters ab and c in any string.

10. [^set_of_characters] שְׁלִילָה:  

תואם לכל תו יחיד שאינו ב- set_of_characters. כברירת מחדל ההתאמה רגישה למקרה.

    Example :    [^abc] will match any character except abc .

11. [הראשון-אחרון] טווח תווים:  

תואם כל דמות יחידה בטווח מהראשון עד האחרון.

    Example :    [a-zA-z] will match any character from a to z or A to Z.

12. סמל הבריחה () 

אם אתה רוצה להתאים עבור '+' ''. 'וכו' מוסיפים תווי גב () לפני הדמות ההיא. זה יגיד למחשב להתייחס לדמות הבאה כדמות חיפוש ולחשב אותו לדפוס תואם.

    Example :    d+[+-x*]d+ will match patterns like '2+2'  
and '3*9' in '(2+2) * 3*9'.

13. דמויות קיבוץ ()  

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

vlc להורדת יוטיוב
    Example :    ([A-Z]w+) contains two different elements of the regular   
expression combined together. This expression will match any pattern
containing uppercase letter followed by any character.

14. סרגל אנכי (|)  

תואם לכל אלמנט אחד המופרד על ידי הדמות הסרגל האנכי (|).

    Example :    th(e|is|at) will match words - the this and that.

15. מספר 

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

    Example :    ([a-z])1 will match ee in Geek because the character   
at second position is same as character at position 1 of the match.

16. איך (?# תגובה) 

תגובה מוטבעת: התגובה מסתיימת בסוגריים הסגירה הראשונה.

    Example :    bA(?#This is an inline comment)w+b

17. # [עד סוף השורה] 

תגובה X-Mode. ההערה מתחילה במספר לא הושקע וממשיכה לסוף השורה.

    Example :    (?x)bAw+b#Matches words starting with A