טבלת עזר עבור תחביר ביטויים רגולריים

ביטויים רגולריים, הידועים גם בשם ביטויי חוק, הם תבניות טקסט, הנמצאות בשימוש בדרך כלל כדי לחפש, להחליף ולשלוט בטקסט. הם כוללים בעיקר את האותיות a עד z ומשהו תו מיוחד. השימוש בביטויים רגולריים רחב מאוד, והם פורטו לראשונה על ידי Unix ואז נעשו בשימוש נרחב בשפות כמו Scala ,PHP, C# ,Java, C++ ,Objective-c, Perl ,Swift, VBScript ,Javascript, Ruby ו-Python. למידת ביטויים רגולריים בעצם כרוכה בלמידת חשיבה לוגית גמישה מאוד, דרך שעוזרת להגיע לשליטה על מחרוזות בצורה פשוטה ומהירה.
תו רגולרי תיאור
\ מסמן את התו הבא כתו מיוחד, תו מהותי, הפנייה לאחור או תו המתקן בעזרת חישוב אוקטלי. לדוגמה, n תואם לתו n. \n תואם לתו שורת החדשים. זוג \\ תואם ל\ ואילו \( תואם ל(.
^ תואם למקום התחלה של מחרוזת הקלט. אם נכנסת למשטר Multiline של אובייקט RegExp, ^ גם תואם למקום לאחר \n או \r.
$ תואם למקום הסיום של מחרוזת הקלט. אם נכנסת למשטר Multiline של אובייקט RegExp, $ גם תואם למקום לפני \n או \r.
* תואם לתת הביטוי שלפניו אפס או יותר פעמים. לדוגמה, zo* תואם לz וגם לzoo. * שקול ל{0,}.
+ תואם לתת הביטוי שלפניו פעם אחת או יותר. לדוגמה, zo+ תואם לzo וגם לzoo, אבל לא תואם לz. + שקול ל{1,}.
? תואם לתת הביטוי שלפניו אפס או פעם אחת. לדוגמה, do(es)? תואם לdoes או לdo בתוך does. ? שקול ל{0,1}.
{n} n הוא מספר שלם לא שלילי. תואם לn פעמים מדויק. לדוגמה, o{2} לא תואם לo בBob, אך תואם לשני ה-o בfood.
{n,} n הוא מספר שלם לא שלילי. תואם לפחות n פעמים. לדוגמה, o{2,} לא תואם לo בBob, אבל תואם לכל ה-o בfoooood. o{1,} שקול לo+. o{0,} שקול לo*.
{n,m} m וn הם שניהם מספרים שלמים לא שליליים, כאשר n <= m. תואם לפחות n פעמים ומקסימום m פעמים. לדוגמה, o{1,3} תואם לשלושת ה-o הראשונים בfooooood. o{0,1} שקול לo?. יש לשים לב שאין רווח בין הפסיקים ובין שני המספרים.
? כאשר התו הזה בא מיד אחרי כל אחד מהסמנים האחרים (*, +, ?, {n}, {n,}, {n,m}), צורת ההתאמה היא לא רעבתנית. צורת ההתאמה הלא רעבתנית תואמת כמה שפחות את המחרוזת המחפשת, בעוד שהצורה הסטנדרטית היא רעבתנית ותואמת כמה שיותר. לדוגמה, עבור המחרוזת oooo, o+? תואם לo בודד, ואילו o+ תואם לכל הo.
. תואם לכל תו בודד פרט ל\n. כדי להתאים תו כולל \n, יש להשתמש במודל כגון (.|\n).
(pattern) תואם לתבנית ומקבל את ההתאמה הזו. ההתאמות שהתקבלו יכולות להיות מופקות מאוסף הMatches שנוצר, בVBScript משתמשים באוסף SubMatches ובJScript משתמשים באופציות $0…$9. כדי להתאים לסוגריים עגולים, יש להשתמש ב\( או \).
(?:pattern) תואם לתבנית אך לא מקבל את התוצאה של ההתאמה, כלומר זהו ביטוי שאינו מקובל, ולכן לא נשמר לשימוש מאוחר יותר. זה מאוד שימושי כאשר משתמשים בתו האופציה (|) כדי לשלב חלקים שונים של ביטוי. לדוגמה industr(?:y|ies) היא ביטוי קצר יותר בהשוואה לindustry|industries.
(?=pattern) קוד חיובית ממתינה, תואם לכל מיקום בו מתחילה מחרוזת תואמת. זו התאמה שאינה מקבלת, כלומר ההתאמה הזו לא צריכה להישמר לשימוש מאוחר יותר. לדוגמה, Windows(?=95|98|NT|2000) תואם לWindows בWindows2000, אך לא תואם לWindows בWindows3.1. הממתנה לא צורכת תווים, כלומר, לאחר התאמה מתרחשת, החיפוש עבור ההתאמה הבאה מתחיל מיד לאחר ההתאמה האחרונה ולא לאחר התו שבו קיימת הממתנה.
(?!pattern) קוד שלילית ממתינה, תואם לכתובת שבה לא מתקיימת מחרוזת תואמת. זו התאמה שאינה מקבלת, כלומר ההתאמה הזו לא צריכה להישמר לשימוש מאוחר יותר. לדוגמה: Windows(?!95|98|NT|2000) תואם לWindows בWindows3.1, אך לא תואם לWindows בWindows2000. הממתנה לא צורכת תווים, כלומר, לאחר התאמה מתרחשת, החיפוש עבור ההתאמה הבאה מתחיל מיד לאחר ההתאמה האחרונה ולא מהתו שבו קיימת הממתנה.
(?<=pattern) קוד חיובית ממתינה אחורית, תואם לקוד החיובית הממתינה קדימה, רק בכיוון ההפוך. לדוגמה, (?<=95|98|NT|2000)Windows תואם לWindows ב2000Windows, אך לא תואם לWindows ב3.1Windows.
(? קוד שלילית ממתינה אחורית, תואם לקוד שלילית ממתינה קדימה, רק בכיוון ההפוך. לדוגמה, (? תואם לWindows ב3.1Windows, אך לא תואם לWindows ב2000Windows.
x|y תואם לx או y. לדוגמה, z|food תואם לz או לfood. (z|f)ood תואם לzood או לfood.
[xyz] אוסף תווים. תואם לכל תו כלול. לדוגמה, [abc] תואם לa בplain.
[^xyz] אוסף תווים שליליים. תואם לכל תו שאינו כלול. לדוגמה, [^abc] תואם לp בplain.
[a-z] טווח תווים. תואם לכל תו בטווח שנבחר. לדוגמה, [a-z] תואם לכל תו שולי בין a לz.
[^a-z] אוסף תווים שליליים בטווח. תואם לכל תו שאינו בטווח שנבחר. לדוגמה, [^a-z] תואם לכל תו שאינו בין a לz.
\b תואם את גבול המילה, כלומר את המקום שבין מילה לחלל. לדוגמה, er\b תואם לer בnever, אך לא תואם לer בverb.
\B תואם גבול לא של מילה. er\B תואם לer בverb, אך לא תואם לer בnever.
\cx תואם תו שליטה שהוגדר על ידי x. לדוגמה, \cM תואם ל-Control-M או לתו חדש. ערך x חייב להיות אחד מ-A-Z או a-z. אחרת, c נחשב לתו מהותי c.
\d תואם לתו מספרי. שקול ל[0-9].
\D תואם לתו שאינו מספרי. שקול ל[^0-9].
\f תואם לתו עמוד חדש. שקול ל\x0c ול\cL.
\n תואם לתו חדש. שקול ל\x0a ול\cJ.
\r תואם לתו חזרה. שקול ל\x0d ול\cM.
\s תואם כל תו ריק, כולל רווחים, טאבים, תו עמוד חדש וכו'. שקול ל[ \f\n\r\t\v].
\S תואם כל תו שאינו ריק. שקול ל[^ \f\n\r\t\v].
\t תואם לטאב. שקול ל\x09 ול\cI.
\v תואם לתו טאבים אנכיים. שקול ל\x0b ול\cK.
\w תואם לכל תו מילים, כולל תחתית. שקול ל[A-Za-z0-9_].
\W תואם לכל תו שאינו תו מילים. שקול ל[^A-Za-z0-9_].
\xn תואם לn, שבו n הוא ערך המתקן פנימה באמצעות ערך הקסדצימלי. ערך מתקנים הקסדצימלי חייב להיות שני מספרים מדויקים. לדוגמה, \x41 תואם לA. \x041 שקול ל\x04&1. ניתן להשתמש בקידוד ASCII בביטויים רגולריים.
\num תואם לnum, שבו num הוא מספר שלם חיובי. הפנייה להתאמה שהושגה. לדוגמה, (.)\1 תואם לשני תווים זהים ברציפות.
\n מסומן כערך אוקטלי או הפנייה לאחור. אם n הוא לפחות כך שיש n תתי התבטאות שהושגו, n הוא הפנייה לאחור. אחרת, אם n הוא מספר אוקטלי (0-7), אז n הוא ערך המסומן בעזרת חישוב אוקטלי.
\nm מסומן כערך אוקטלי או הפנייה לאחור. אם nm הוא לפחות nm תתי התאמות שהושגו, nm הוא הפנייה לאחור. אם nm הוא לפחות n יש התאמה והפנייה של תו המופיעה לאחר מכן m. אם אף אחת מהדרישות לא מתקיימות, אם n וm הם שני מספרים אוקטליים (0-7), אז nm תואם לערך האוקטלי שפונה לnm.
\nml אם n הוא מספר אוקטלי (0-3), בעוד m וl הם תתי מספרים אוקטליים (0-7), אם אז מתאם לערך האוקטלי שניתח מתכוון לערך nml.
\un תואם n, שבו n הוא תו Unicode המוצג עם ארבעה מספרים הקסדצימליים. למעשה, \u00A9 תואם לסימן זכויות יוצרים (©).
ביטויים רגולריים שימושיים
שם משתמש /^[a-z0-9_-]{3,16}$/
סיסמה /^[a-z0-9_-]{6,18}$/
סיסמה 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (מכילה מספרים/אותיות גדולות/אותיות קטנות/סימני פיסוק, חייבת לכלול את כל ארבעת סוגי התווים, ובעלת 8 תווים ומעלה)
ערך הקסדצימלי /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
כתובת דואר אלקטרוני /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ או \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ או [a-zA-z]+://[^\s]*
כתובת IP /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ או ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
תגיות HTML /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ או <(.*)(.*)>.*<\/\1>|<(.*) \/>
הסרת קוד\\הערות (?<!http:|\S)//.*$
התאמה לתו דו-בייטי (כולל סינית) [^\x00-\xff]
תווים סיניים (תו) [\u4e00-\u9fa5]
טווח תווים סיניים בקידוד Unicode /^[\u2E80-\u9FFF]+$/
סינית וסימני פיסוק במלואם (תו) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
תאריך (שנה-חודש-יום) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
תאריך (חודש/יום/שנה) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
שעה (שעות:דקות, 24 שעות) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
מספר טלפון קבוע בסין (\d{4}-|\d{3}-)?(\d{8}|\d{7})
מספר טלפון נייד בסין 1\d{10}
מיקוד בסין [1-9]\d{5}
מספר תעודת זהות בסין (15 או 18 תווים) \d{15}(\d\d[0-9xX])?
מספרים לא שליליים (מספרים חיוביים או אפס) \d+
מספרים חיוביים [0-9]*[1-9][0-9]*
מספרים שליליים -[0-9]*[1-9][0-9]*
מספרים שלמים -?\d+
מספרים עשרוניים (-?\d+)(\.\d+)?
שורות ריקות \n\s*\r או \n\n(editplus) או ^[\s\S ]*\n
מספר QQ [1-9]\d{4,}
מילים שאינן כוללות abc \b((?!abc)\w)+\b
התאמה לרווחים בתחילת וסוף המילה ^\s*|\s*$
עריכה נפוצה
הנה כמה תחליפים עבור סינית מיוחדת (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

סקירת תחביר ביטויים רגולריים - טיפים וטכניקות שימושיות לביטויים רגולריים

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

תחביר בסיסי של ביטויים רגולריים

ביטויים רגולריים משמשים לתיאור כללי של דפוסי המחרוזת. התחביר הבסיסי הנפוץ כולל:

סוגי מגנונות נפוצים בביטויים רגולריים

סוגי גדלים נוספים בביטויים רגולריים משנים את כללי ההתאמה של ביטוי רגולרי, גדלים נפוצים כוללים:

רגישות רעבתנית ורגישות לא רעבתנית

בביטויים רגולריים, מנעד ברירת המחדל רעבני, הוא יתאים ככל האפשר לתווים רבים. רגישות לא רעבתנית נוצרת על ידי הוספת ? לאחר ה-m. דוגמאות:

תתי פסקאות וביקוש

תתי הפסקאות בביטויים רגולריים מוגדרים על ידי סוגריים (()), משמשים באופן נפוץ להוצאת התאם. ביקוש מתבצע על ידי תו "|" דוגמאות:

מהירה לעיון על ביטויים רגולריים

למטה ישנן מהירות העיון על ביטויים רגולריים הנפוצים:

פונקציה ביטוי רגולרי
תואם מספרים \d
תואם שאינם מספרים \D
תואם אותיות [a-zA-Z]
תואם תו אקראי .
תואם תווי חופשי \s

תחומי השימוש של הביטויים הרגולריים

ביטויים רגולריים בשימוש רחב בתחומים:

טיפים ללימוד ביטויים רגולריים

השתמש מיד בסקירת תחביר הביטויים הרגולריים והגדל את היעילות שלך בהרכבת הביטויים הרגולריים!

ההיסטוריה שלך:
בחר שפה