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

כדי ליצור ביטוי רגולרי, צריך להשתמש בתחביר ספציפי – כלומר, בתווים מיוחדים ובכללי בנייה. לדוגמה, הביטוי הרגולרי הפשוט הבא תואם לכל מספר טלפון בן 10 ספרות, בדפוס nnn-nnn-nnnn:

\d{3}-\d{3}-\d{4}

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

דמויות תיאור
עוגנים
^ ‫(^) מתאים לתחילת השורה או למחרוזת הטקסט שהביטוי הרגולרי מחפש. לדוגמה, כלל תוכן עם מיקום של שורת הנושא והביטוי הרגולרי הבא:

^abc

תופס כל הודעת אימייל ששורת הנושא שלה מתחילה באותיות abc
$ ‫(dollar) מתאים לסוף השורה או למחרוזת הטקסט שהביטוי הרגולרי מחפש. לדוגמה, כלל תוכן עם מיקום של שורת הנושא והביטוי הרגולרי הבא:

xyz$

תופס כל הודעת אימייל ששורת הנושא שלה מסתיימת באותיות xyz
תווים מטא
. ‫(dot) מתאים לכל תו יחיד, למעט שורה חדשה.
| ‫| (קו אנכי) מציין חלופות – כלומר, 'או'. לדוגמה:

cat|dog מתאים למילה cat או dog
\ מציין שהתו הבא הוא תו מילולי ולא תו מיוחד. לדוגמה:

‎\. מתאים לנקודה מילולית, ולא לכל תו (תו נקודה)
Character Classes
[...] התאמה לכל תו מתוך קבוצת תווים. מפרידים בין התו הראשון והאחרון בקבוצה באמצעות מקף. לדוגמה:

‫[123] תואם לספרה 1, 2 או 3

‫[a-f] תואם לכל אות מ-a עד f

הערה: הביטויים הרגולריים במדיניות בנושא תאימות תוכן הם תלויי-רישיות (case sensitive).
[^...] התאמה לכל תו שלא נמצא בקבוצת התווים. לדוגמה:

‫[^a-f]תואם לכל תו שהוא לא אות מ-a עד f

הערה: הביטויים הרגולריים במדיניות בנושא תאימות תוכן הם תלויי-רישיות (case sensitive).
[:alnum:] התאמה לתווים אלפאנומריים (אותיות או ספרות):

a-z, ‏ A-Z או 0-9

הערה: כשמשתמשים בסוג התווים הזה בביטוי רגולרי, צריך להקיף אותו בעוד זוג סוגריים מרובעים, לדוגמה: [[:alnum:]].
[:alpha:] תואם לתווים אלפביתיים (אותיות):

a-z או A-Z

הערה: כשמשתמשים במחלקת התווים הזו בביטוי רגולרי, צריך להקיף אותה בעוד זוג סוגריים מרובעים, לדוגמה: [[:alpha:]].
[:digit:] תואם לספרות:

0-9

הערה: כשמשתמשים במחלקת התווים הזו בביטוי רגולרי, צריך להקיף אותה בעוד זוג סוגריים מרובעים, לדוגמה: [[:digit:]].
[:graph:] תואם רק לתווים גלויים – כלומר, כל התווים חוץ מרווחים, תווים לשליטה וכו'.

הערה: כשמשתמשים במחלקת התווים הזו בביטוי רגולרי, צריך להקיף אותה בעוד קבוצה של סוגריים מרובעים, לדוגמה: [[:graph:]].
[:punct:] מתאים לתווי פיסוק ולסמלים:

! " # $ % & ' ( ) &ast; + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | }

הערה: כשמשתמשים במחלקת התווים הזו בביטוי רגולרי, צריך להקיף אותה בעוד זוג סוגריים מרובעים, לדוגמה: [[:punct:]].
[:print:] תואם לתווים ולרווחים שניתן לראות.

הערה: כשמשתמשים במחלקת התווים הזו בביטוי רגולרי, צריך להוסיף עוד זוג סוגריים מרובעים מסביב, למשל: [[:print:]].
[:space:] תואם לכל תווי הרווח הלבן, כולל רווחים, טאבים ומעברי שורה.

הערה: כשמשתמשים במחלקת התווים הזו בביטוי רגולרי, צריך להקיף אותה בעוד קבוצה של סוגריים מרובעים, לדוגמה: [[:space:]].
[:word:] התאמה לכל תו של מילה – כלומר, כל אות, ספרה או קו תחתון:

a-z,‏ A-Z,‏ 0-9 או _

הערה: כשמשתמשים בסוג התווים הזה בביטוי רגולרי, צריך להקיף אותו בעוד זוג סוגריים מרובעים, לדוגמה: [[:word:]].
Shorthand Character Classes
\w תואם לכל תו של מילה – כלומר, כל אות, ספרה או קו תחתון:

a-z,‏ A-Z,‏ 0-9 או _

שווה ל-[:word:]
\W תואם לכל תו שהוא לא תו במילה – כלומר, כל תו שהוא לא אות, ספרה או קו תחתון.

שווה ל-‎[^[:word:]]
‎\s מתאים לכל תו שיוצר רווח. לדוגמה, אפשר להשתמש בתו הזה כדי לציין רווח בין מילים בביטוי:

stockstips תואם לביטוי stock tips

שווה ל-[:space:]
\S מתאים לכל תו שאינו רווח.

שווה ל-‎[^[:space:]]‎
\d התאמה לכל ספרה מ-0 עד 9.

שווה ל-[:digit:]
\D מתאים לכל תו שהוא לא ספרה מ-0 עד 9.

שווה ל-‎[^[:digit:]]
קבוצה
(...) קיבוץ חלקים של ביטוי. אפשר להשתמש בקיבוץ כדי להחיל כמותן על קבוצה או כדי להתאים למחלקת תווים לפני או אחרי קבוצה.
כלי כמות
{n} התאמה לביטוי הקודם בדיוק n פעמים. לדוגמה:

‫[a-c]{2} מתאים לכל אות מ-a עד c רק אם שתי אותיות מופיעות ברצף. לכן, הביטוי יתאים ל-ab ול-bc, אבל לא ל-abc או ל-aabbc.
{n,m} התאמה לביטוי הקודם לפחות n פעמים ולכל היותר m פעמים. לדוגמה:

‫[a-c]{2,4} תואם לכל אות מ-a עד c רק אם האותיות מופיעות ברצף לפחות פעמיים ולכל היותר 4 פעמים. לכן, הביטוי יתאים ל-ab ול-abc אבל לא ל-aabbc.
? מציין שהתו או הביטוי הקודמים יכולים להיות תואמים 0 פעמים או פעם אחת. שווה לטווח {0,1}. לדוגמה, הביטוי הרגולרי הבא:

colou?r

תואם ל-colour או ל-color, כי התו ? הופך את האות u לאופציונלית.