Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression
No Match

r"
"
gims

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"(\d{2}\/\d{2}\/\d{4})" test_str = ("29/09/2018, 22:29 - כרמית: העבירו בקבוצות שלכם לחברים, \n" "הודעה מרופא *מאיכילוב* -\n" "אני מחפש גבר בעל סוג דם AB+ בלבד,\n" "לתרומת דם, כדוריות לבנות, לילד הנלחם על חייו - לוקמיה. \n" "הילד על הקצה ממש, \n" "תפעילו את קשריכם החברתיים, \n" "בואו ננסה לעשות טוב.\n" "תודה.\n" "ד\"ר אילן. +972 54-440-3094\n" "30/09/2018, 07:37 - ורדה פרידמן: ביום שלישי הקרוב .משעה 8-17 תחסם כניסה ג' .\n\n" "ביום רביעי למחרת תחסם כניסה א' \n" "בין 8-17.\n" "גם בתוך הדירות אסור יהיה להשאר.\n" "תודה על שיתוף הפעולה .נא ליידע את הדיירים .\n" "חג שמח\n" "04/10/2018, 12:07 - ורדה פרידמן: לידיעה : ביום א 7.10 לא תתאפשר כניסה ויציאה בכניסה ג .המשך וסיום הריסת גרם המדרגות . סליחה על חוסר הנוחות !\n" "04/10/2018, 13:00 - +972 52-877-7260: ורדה, אם אפשר יהיה ללחוץ שיסדרו היום את הכבל האמצע המדרגה של כניסה א, זה יעזור, אחרת ניתקע עם זה עוד בסופ\"ש. זה חוסם את המעבר.\n" "04/10/2018, 13:01 - ורדה פרידמן: אבדוק\n" "04/10/2018, 13:03 - ורדה פרידמן: לכולנו יהיה יותר נעים להוסיף תודה ובבקשה 🤷‍♀\n" "04/10/2018, 13:08 - +972 52-877-7260: בבקשה ותודה 🙏🏼\n" "04/10/2018, 13:59 - ורדה פרידמן: הנושא טופל 👍\n" "04/10/2018, 14:35 - or: תודה ורדה.\n" "04/10/2018, 14:47 - ורדה פרידמן: בכיף\n" "04/10/2018, 15:19 - ורדה פרידמן: לידיעה ביום ג' יעברו בכל הדירות בבנין להסדיר ולבדוק היכן יהיה מיקום החיבור לגז. לפיכך מתבקשים הדיירים להיות בבית או להשאיר מפתח לקבלן איתן או לנציג הוועד .\n" " כניסה א' בין 07-10\n" "כניסה ב' 09-12\n" "כניסה ג' 11-14 \n" "בכל דירה יתעכבו כ-20 דקות. תודה לכולם .\n" "04/10/2018, 15:20 - ורדה פרידמן: 9.10.18 שלישי\n" "04/10/2018, 17:28 - +972 54-480-9955: אפשר בבקשה להוסיף את טל לקבוצה? \n" "0526527979\n" "04/10/2018, 17:42 - +972 50-404-2719 added +972 52-652-7979\n" "04/10/2018, 18:24 - תחייה: תודה יפיפיה.😉\n" "29/10/2018, 18:04 - ורדה פרידמן: לכל הדיירים ביום חמישי 1.11.18 בין השעות 10-14 חייבים להיות בבית בדירות שאציין אחרת לא יהיה חיבור לגז בעתיד !\n" "כניסה א' דירות:1.2.5.6.8\n" "כניסה ב' דירות :1.2.3.4.6\n" "כניסה ג' דירות : 4.8 \n" "נא לשתף פעולה . תודה\n" "29/10/2018, 18:08 - +972 52-877-7260: אצלינו עוד לא עשו את ההכנה כי המטבח באמצע הדירה ועוד אין חיבור לחלק החדש.\n" "23/08/2019, 11:44 - +972 50-390-2592: תודה\n" "23/08/2019, 12:01 - +972 54-477-7995: אמור להיות ...אני לא מקבל דואר הגיעו עכשיו ההודעות לבוחר ...\n" "25/08/2019, 13:18 - +972 50-390-2592: יש הרבה הודעות לבוחר בכניסה א.את שלך עופר לא ראיתי שם\n" "25/08/2019, 14:40 - +972 54-477-7995: הכתובת שלי במשרד החוץ שונה \n\n" "תודה\n" "25/08/2019, 15:57 - +972 50-404-2719: מתי פגישת הדיירים?\n" "25/08/2019, 19:26 - or: בוקר טוב \n" "בהמשך לאסיפת הדיירים קבענו ישיבה עם עורך הדין לכל הדיירים ביום ג הבא 27.8 בשעה 18.00 במרכז הקהילתי חיים לבנון 37.תודה ויום טוב נוכחותכם חשובה ונוכל לקבל מענה על כל שאלותינו בקשר למהלך .\n" "25/08/2019, 20:17 - ורדה פרידמן: צר לי לא יכולה להגיע !\n" "26/08/2019, 07:21 - +972 52-877-7260: דרך אגב, התיקונים בחלק הצפוני שנמסר ב7.8. עם ליקויים שמונעים את השימוש בחדרים עדיין לא תוקנו. הפועלים לא הגיעו באף אחד מועד שתואם. איתי ואוריה לא מגיבים להודעות בכלל.\n" "26/08/2019, 07:49 - +972 54-477-7995: אוריה חזר מחופשה זו הסיבה שלא ענה אמור להיות היום באתר\n" "26/08/2019, 07:49 - +972 54-477-7995: שוחחתי עימו אמש\n" "26/08/2019, 07:52 - +972 52-877-7260: זה לא ממש עוזר כי הוא לא עונה לאף אחד מהכניסה, ללא קשר לחופשה.\n" "כיוון שהעבודות לא בוצעו עד הסוף והם היו לחוצים למסור את החלק תוך הבטחה לתקן את הליקויים, זה מאחראיותם להשיג אותי ולנסות לתקן. במקום זה אני צריכה לרדוף אחריהם.\n" "26/08/2019, 07:54 - +972 54-477-7995: אני אשוחח עימו מייד בענין ברשותך \n" "יום טוב לכולנו\n" "26/08/2019, 07:55 - +972 52-877-7260: תודה\n" "26/08/2019, 11:52 - +972 50-390-2592: אתמול ניכנסתי לדירה6 בכ א שעוברת שיפוץ.אף אחד לא היה בדירה.המים זרמו בשרותים.זו בטח רק 1 הסיבות לחשבונות המים העצומים\n" "26/08/2019, 12:04 - +972 52-877-7260: אצלך נכנסו היום לראשונה מזה כמה שבועות\n" "26/08/2019, 13:16 - +972 50-390-2592: מזה כמה חדשים\n" "26/08/2019, 13:18 - +972 54-477-7995: את חייבת להיות שם כל יום אין ברירה אם את רוצה שיתקדמו\n" "26/08/2019, 13:20 - +972 50-390-2592: אני חושבת שעכשיו הם מעונינים.הם כבר באחור.כמובן שיש להם סעיפי תרוצים שיוציאו אותם מכל דבר.איך מתקדמים אצלך עפר?\n" "26/08/2019, 13:21 - +972 54-477-7995: לאט לטעמי \n" "לוקח זמן לתקן טעויות של הקבלן הקודם ...\n" "26/08/2019, 14:36 - +972 52-877-7260: אחרי הפניות שלך התקשר איתי ב8:30 היום, שאל אם אפשר היום לתקן. הזכרתי לו שסיכמנו על תיאום מוקדם, אבל שאני בבית עד 11:00 ואז יוצאת לעבודה. הגיע פועל ב10:34. טען שעשר דקות והוא בחוץ. שהה בדירה 16 דקות, מתוכם רוב הזמן בטלפון בחלון, הבין שיש יותר עבודה ממה שהוא יכול לעשות (גם לא הביא כלים מתאימים) והלך. \n" "רוב התיקונים הוא בכלל סירב לבצע (\"החור פה זה כי הכנתי פתחים לפני שבא חשמלאי. לא תמיד יוצא מדויק\". כאילו, בסדר לו עם חורים בקיר).\n" "26/08/2019, 20:28 - +972 54-477-7995: ערב טוב \n" "לכל מי שטרם העביר לועד הבית את חלקו בתשלום לעורך הדין אנא עשו זאת ניתן להעביר מחר לאביבה .\n" "ואני שב ומזכיר על המפגש עם עורך הדין שלנו מחר ב18 בחיים לבנון 37 במרכז הקהילתי\n" "26/08/2019, 20:32 - יאיר ארבל(כניסה ג'): א.כמה התשלום הראשון . \n" "ב. אפשר מחר בפגישה לקבל מצב חשבון של הועד\n" "26/08/2019, 20:33 - שריד אדמוני: עופר, תודה רבה על ארגון המפגש, נבקש את התוכנית המוצעת של עו\"הד, גם בראשי פרקים בכתב.\n" "26/08/2019, 20:37 - +972 54-477-7995: אשלח לכולם את פרטי ההסכם עימו \n" "המפגש נועד גם להעלת שאלות של כולנו אליו .\n" "26/08/2019, 20:37 - שריד אדמוני: מעולה ! תודה רבה !\n" "27/08/2019, 17:58 - +972 54-244-3209: האם חותמים היום על איזה מסמך?\n" "27/08/2019, 18:29 - +972 54-477-7995: חיובי הסכם. ויפוי כח\n" "27/08/2019, 20:28 - +972 52-877-7260: IMG-20190827-WA0001.jpg (file attached)\n" "כמה טוב לחזור הביתה אחרי הישיבה. הכניסה לבניין. אור בחדר מדרגות אין כבר חודשיים.\n" "27/08/2019, 20:38 - שריד אדמוני: עופר ואביבה אבקש שתרשם ונקבל קבלה מועד הבית על הצ'ק שנמסר עבור ההליך המשפטי כמקובל. בתודה, אדמוני\n" "27/08/2019, 22:17 - +972 54-477-7995: באיזה כניסה אין אור ?\n" "27/08/2019, 22:30 - +972 52-877-7260: א. מקומה ב והלאה. הרסו את החיבורים\n" "28/08/2019, 08:51 - +972 54-477-7995: בוקר טוב חברים \n" "תודה לכל מי שהגיע אמש והשתתף באסיפה \n" "אם יש למישהו שאלות נוספות אשמח לענות בפרטי .\n" "מי שטרם העביר לאביבה את 1500 שח אנא העביר ו\n" "מי שלא השתתף ולא חתם על יפוי כח נתאם חתימה בפקס או במייל .\n" "יום טוב לכולנו\n" "28/08/2019, 08:56 - שריד אדמוני: עופר תודה רבה לכם על ארגון המפגש, הוא היה חשוב ביותר ומקדם.\n" "נשמח לקבל הנחיות\n" "1. מה ואיך לתעד זמן, צילום, תאור במלל...\n" "2. למי להעביר את התעוד ואיך \n" "3. למי פונים בשאלות עקרוניות כגון הסכמה/דחיה של דרישה למסירה בטרם סיום.\n" "בתודה רבה 🙏🏼\n" "28/08/2019, 11:43 - +972 54-477-7995: ראשית אשיב שאנו מודים בשם כולם למיכל על שהצליחה לארגן את האכסניה וההגברה לאסיפה אתמול \n" "אנו נתאם עם חברי הנציגות והפיקוח נוהל מסירה מסודר שיתואם עם הקבלן \n" "הפיקוח שלנו לא יהיה בכל המסירות\n" "29/08/2019, 09:22 - +972 52-877-7260: מספר חודשים אחרי שנגרם הנזק מנזילה מקומה החדשה באמבטיה וחדר הילדים שלי, עם צמיחת עובש על כל הקירות שהוציאה את שניהם מכלל שימוש, אחרי הבטחות שווא חוזרות מטעם אוריה ואיתי שהדבר יטופל ושום פעולה בפועל - איתי עכשיו טען שבכל מקרה הוא \"לא יודע מה לעשות עם זה, תתאמתי עם היזם. זה לא התפקיד שלנו לתקן דברים כאלה\".\n" "זה לתיעוד וגם כדי שתביני שאין עם מי לדבר לגבי נזקים שהקבלן גרם ברשלנות.\n" "03/09/2019, 17:08 - שריד אדמוני: האם מישהו קיבל פניה מהעיריה לגבי רחוב דרך נמיר מרדכי 188 - התנגדויות להיתר ואגרות השורים להקטנת שטח פנימי מרתפים, שינוי תנאי דיפון וכו...?\n" "03/09/2019, 17:09 - שריד אדמוני: האם הפניה קשורה לפרוייקט בבניינים 11,13,15 ?\n" "03/09/2019, 17:38 - +972 54-477-7995: לדעתי לא אלא אם יש לכם דירה בנמיר\n" "03/09/2019, 17:51 - +972 52-697-3751: עופר, האם מדובר בדלתות הכניסה? במצב חדר המדרגות הנוכחי, נראה שהן יהרסו הרבה לפני שנקבל את הדירות חזרה\n" "03/09/2019, 17:51 - or: לדעתי זה קשור לרכבת הקלה\n" "04/09/2019, 07:57 - סופי(שכנה): בוקר טוב עופר,מה לגבי תיאום מועד החלפת הדלתות בכניסה א?\n" "04/09/2019, 12:46 - +972 54-477-7995: שלחתי לכם מייל הבוקר\n" "04/09/2019, 12:46 - +972 54-477-7995: מחר ההתקנה\n" "04/09/2019, 12:47 - +972 54-477-7995: IMG-20190904-WA0003.jpg (file attached)\n" "04/09/2019, 12:49 - סופי(שכנה): תודה\n" "04/09/2019, 13:20 - +972 54-480-9955: הי זה כולל מנעול רב בריח עם מפתחות חדשים?..\n" "04/09/2019, 13:57 - +972 54-477-7995: אני מניח שכן\n" "04/09/2019, 21:37 - +972 53-250-7566's security code changed. Tap for more info.\n" "05/09/2019, 06:25 - +972 53-250-7566's security code changed. Tap for more info.\n" "06/09/2019, 11:38 - +972 53-250-7566's security code changed. Tap for more info.\n" "07/09/2019, 06:25 - +972 54-480-9955's security code changed. Tap for more info.\n" "08/09/2019, 11:25 - +972 54-480-9955's security code changed. Tap for more info.\n" "17/09/2019, 10:48 - +972 50-390-2592: שימי לב.חברים שלי דיווחו על מעטפות מקושקשות בצד האחורי.זו מעטפה פסולה(אני היצבעתי ולא שמתי לב לצד השני)\n" "19/09/2019, 15:09 - שריד אדמוני: IMG-20190919-WA0005.jpg (file attached)\n" "19/09/2019, 15:09 - שריד אדמוני: שבור, לא מצאו אריח\n" "19/09/2019, 15:33 - +972 54-477-7995: איפה זה ?\n" "19/09/2019, 15:42 - שריד אדמוני: כניסה א' דירה 1 אדמוני\n" "19/09/2019, 15:43 - שריד אדמוני: בנוסף: אוריה לא מגיב לתקלות מזגנים\n") matches = re.finditer(regex, test_str, re.IGNORECASE | re.MULTILINE | re.DOTALL) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html