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

/
/
gm

Test String

Code Generator

Generated Code

#include <StringConstants.au3> ; to declare the Constants of StringRegExp #include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate Local $sRegex = "(?m)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d\d?)(st|nd|rd|th)?,?\s(\d{4})|(\d\d?)[\.\/-](\d\d?)[\.\/-](\d{4})" Local $sString = "03.24.2014" & @CRLF & _ "Jan 13 2021" & @CRLF & _ "January 29, 2007" & @CRLF & _ "Jan 9 2003" & @CRLF & _ "12/25/2008" & @CRLF & _ "July 7th, 2022" & @CRLF & _ "03-16-2000" & @CRLF & _ "08-28-2020" & @CRLF & _ "June 21 2019" & @CRLF & _ "04-24-2008" & @CRLF & _ "October 31st 2018" & @CRLF & _ "June 20, 2000" & @CRLF & _ "August 29th 2005" & @CRLF & _ "Dec 12th, 2019" & @CRLF & _ "April 5 2004" & @CRLF & _ "Feb 7 2020" & @CRLF & _ "July 9th, 2011" & @CRLF & _ "Aug 18 2015" & @CRLF & _ "01.27.2020" & @CRLF & _ "December 27, 2022" & @CRLF & _ "04-05-2005" & @CRLF & _ "07/19/2001" & @CRLF & _ "08/21/1999" & @CRLF & _ "August 31st, 2004" & @CRLF & _ "November 18th 2015" & @CRLF & _ "Feb 25 2006" & @CRLF & _ "February 27th 2011" & @CRLF & _ "September 29th, 1999" & @CRLF & _ "Nov 13, 2017" & @CRLF & _ "Aug 19th 2014" & @CRLF & _ "Nov 24 1999" & @CRLF & _ "Oct 25 2015" & @CRLF & _ "11/01/2019" & @CRLF & _ "02/11/2017" & @CRLF & _ "11.30.2019" & @CRLF & _ "05.26.2002" & @CRLF & _ "Jan 14 1998" & @CRLF & _ "May 5, 1998" & @CRLF & _ "04-24-1998" & @CRLF & _ "November 23 2006" & @CRLF & _ "Mar 21, 1999" & @CRLF & _ "April 6, 2013" & @CRLF & _ "Jun 4th, 2012" & @CRLF & _ "Oct 16th, 2000" & @CRLF & _ "08/07/2021" & @CRLF & _ "May 8, 2003" & @CRLF & _ "October 30th, 2021" & @CRLF & _ "07/27/1998" & @CRLF & _ "03.30.2007" & @CRLF & _ "08/12/2005" & @CRLF & _ "May 23 2020" & @CRLF & _ "01/18/2019" & @CRLF & _ "09/04/2013" & @CRLF & _ "December 17, 2022" & @CRLF & _ "06.30.2012" & @CRLF & _ "Jul 23rd 2022" & @CRLF & _ "10.28.1998" & @CRLF & _ "February 16th 1998" & @CRLF & _ "05-20-2008" & @CRLF & _ "September 27th, 2002" & @CRLF & _ "03.27.2004" & @CRLF & _ "08/11/2015" & @CRLF & _ "May 29th, 2006" & @CRLF & _ "02-19-2005" & @CRLF & _ "02/08/2018" & @CRLF & _ "June 14, 2003" & @CRLF & _ "January 18th, 2000" & @CRLF & _ "Jun 9th 2022" & @CRLF & _ "02.12.2003" & @CRLF & _ "06/15/2015" & @CRLF & _ "April 16th, 2001" & @CRLF & _ "April 13th, 2011" & @CRLF & _ "Nov 7, 1998" & @CRLF & _ "02.19.2015" & @CRLF & _ "03/18/2009" & @CRLF & _ "12/19/2005" & @CRLF & _ "July 25th, 1998" & @CRLF & _ "08.06.2022" & @CRLF & _ "October 5, 2016" & @CRLF & _ "October 1, 2022" & @CRLF & _ "03-13-2013" & @CRLF & _ "06-03-1999" & @CRLF & _ "Nov 29th 2005" & @CRLF & _ "Jul 9, 2014" & @CRLF & _ "10-10-1999" & @CRLF & _ "August 19 2016" & @CRLF & _ "Apr 5, 2016" & @CRLF & _ "09.26.1999" & @CRLF & _ "10/15/2007" & @CRLF & _ "12.04.2018" & @CRLF & _ "12-08-2008" & @CRLF & _ "Jul 13, 2022" & @CRLF & _ "12.23.2006" & @CRLF & _ "December 8, 2011" & @CRLF & _ "June 4th 2004" & @CRLF & _ "10.07.2007" & @CRLF & _ "June 19th 2002" & @CRLF & _ "09.05.2011" & @CRLF & _ "December 15, 2009" & @CRLF & _ "12/17/2007" & @CRLF & _ "08-25-2017" & @CRLF & _ "September 13, 2000" & @CRLF & _ "11-29-2006" & @CRLF & _ "12-11-2000" & @CRLF & _ "01/25/2016" & @CRLF & _ "09/13/2014" & @CRLF & _ "Dec 30 2017" & @CRLF & _ "05/28/2018" & @CRLF & _ "January 31 2020" & @CRLF & _ "November 7th 2002" & @CRLF & _ "July 14 2008" & @CRLF & _ "08.31.2009" & @CRLF & _ "October 25 2018" & @CRLF & _ "01/09/1999" & @CRLF & _ "09/16/2007" & @CRLF & _ "04/01/2013" & @CRLF & _ "12-15-2000" & @CRLF & _ "Oct 16 2004" & @CRLF & _ "10.25.2009" & @CRLF & _ "Aug 7 2001" & @CRLF & _ "April 13th 2020" & @CRLF & _ "April 11th 2001" & @CRLF & _ "02/20/2011" & @CRLF & _ "Aug 4 2008" & @CRLF & _ "Jul 25 2017" & @CRLF & _ "November 1, 2010" & @CRLF & _ "July 7 2000" & @CRLF & _ "December 15, 2013" & @CRLF & _ "12.04.2018" & @CRLF & _ "03/21/2014" & @CRLF & _ "11/15/2004" & @CRLF & _ "September 6th, 2003" & @CRLF & _ "May 15th, 2010" & @CRLF & _ "February 7 2011" & @CRLF & _ "06/10/2021" & @CRLF & _ "02-13-2016" & @CRLF & _ "02.10.2012" & @CRLF & _ "08-20-1998" & @CRLF & _ "Aug 24, 2007" & @CRLF & _ "04.27.2014" & @CRLF & _ "03/08/2019" & @CRLF & _ "09-09-2020" & @CRLF & _ "September 10th, 2022" & @CRLF & _ "May 11th, 2002" & @CRLF & _ "11/05/2015" & @CRLF & _ "01-29-2003" & @CRLF & _ "Aug 27th, 2000" & @CRLF & _ "Oct 11, 2013" & @CRLF & _ "12/12/2002" & @CRLF & _ "Nov 16 2007" & @CRLF & _ "October 13th, 2008" & @CRLF & _ "10-12-2017" & @CRLF & _ "02/16/1999" & @CRLF & _ "04.13.2013" & @CRLF & _ "Aug 19, 2020" & @CRLF & _ "February 9th, 2018" & @CRLF & _ "Sep 27, 2002" & @CRLF & _ "April 27th, 2005" & @CRLF & _ "February 17, 2005" & @CRLF & _ "Apr 6 1998" & @CRLF & _ "July 17, 2020" & @CRLF & _ "10/22/2000" & @CRLF & _ "11/29/2019" & @CRLF & _ "Jan 5 2018" & @CRLF & _ "08/12/1998" & @CRLF & _ "10.07.1998" & @CRLF & _ "07/21/2021" & @CRLF & _ "03.22.2006" & @CRLF & _ "04-19-2002" & @CRLF & _ "Feb 26th, 2022" & @CRLF & _ "Mar 18 2017" & @CRLF & _ "February 10, 2013" & @CRLF & _ "September 24, 2021" & @CRLF & _ "07-14-2003" & @CRLF & _ "Feb 1st, 2019" & @CRLF & _ "March 23, 2022" & @CRLF & _ "11/22/2014" & @CRLF & _ "May 10 2014" & @CRLF & _ "Mar 13th, 2008" & @CRLF & _ "05.27.2014" & @CRLF & _ "Jun 22, 2010" & @CRLF & _ "Jun 26th 2020" & @CRLF & _ "Sep 7, 2002" & @CRLF & _ "June 19 2004" & @CRLF & _ "03-26-2015" & @CRLF & _ "07.27.2005" & @CRLF & _ "02/24/1998" & @CRLF & _ "February 13th 2010" & @CRLF & _ "08-18-2012" & @CRLF & _ "May 27 1999" & @CRLF & _ "August 7th 2001" & @CRLF & _ "07.27.2001" & @CRLF & _ "January 25 2006" & @CRLF & _ "07.31.2003" & @CRLF & _ "November 1st, 2007" & @CRLF & _ "04.13.2010" & @CRLF & _ "11.03.2021" & @CRLF & _ "Oct 6, 2019" & @CRLF & _ "February 10 2015" & @CRLF & _ "01.11.2000" & @CRLF & _ "05.16.2016" & @CRLF & _ "11.16.2019" & @CRLF & _ "01-16-2003" & @CRLF & _ "December 31st 2018" & @CRLF & _ "04.15.2014" & @CRLF & _ "Jul 17th 2007" & @CRLF & _ "11-07-2021" & @CRLF & _ "05-10-2007" & @CRLF & _ "02-01-2007" & @CRLF & _ "May 31st, 2004" & @CRLF & _ "July 4th 2018" & @CRLF & _ "Jun 28 2018" & @CRLF & _ "Nov 17 2002" & @CRLF & _ "Jun 24, 2006" & @CRLF & _ "March 26 2022" & @CRLF & _ "10/18/1998" & @CRLF & _ "Jul 2nd 1998" & @CRLF & _ "March 25th, 2020" & @CRLF & _ "Jul 30th 2021" & @CRLF & _ "08.24.2017" & @CRLF & _ "October 8, 2006" & @CRLF & _ "10.24.2002" & @CRLF & _ "May 8 2020" & @CRLF & _ "Apr 16th 2006" & @CRLF & _ "10.20.2005" & @CRLF & _ "05/05/2001" & @CRLF & _ "10/21/2020" & @CRLF & _ "05/20/2020" & @CRLF & _ "11/09/2015" & @CRLF & _ "12-16-2011" & @CRLF & _ "Nov 8, 2019" & @CRLF & _ "02-10-2015" & @CRLF & _ "September 26th 2012" & @CRLF & _ "May 11th 2020" & @CRLF & _ "Dec 23rd, 2005" & @CRLF & _ "May 14th 1998" & @CRLF & _ "01.16.2004" & @CRLF & _ "Oct 28 1999" & @CRLF & _ "July 5th 2006" & @CRLF & _ "05-09-2018" & @CRLF & _ "10.28.2017" & @CRLF & _ "Jun 1, 2004" & @CRLF & _ "Feb 3rd, 2002" & @CRLF & _ "07.31.2004" & @CRLF & _ "Jan 26 2009" & @CRLF & _ "12/04/2009" & @CRLF & _ "Jan 21st, 2020" & @CRLF & _ "February 18 2015" & @CRLF & _ "10.28.2018" & @CRLF & _ "Oct 16th, 2020" & @CRLF & _ "February 23, 2002" & @CRLF & _ "08-29-2001" & @CRLF & _ "August 22 2002" & @CRLF & _ "June 22nd, 2009" & @CRLF & _ "09.06.2006" & @CRLF & _ "Oct 14th 2003" & @CRLF & _ "October 24th, 2005" & @CRLF & _ "09-30-2000" & @CRLF & _ "September 24th 2007" & @CRLF & _ "11-19-2020" & @CRLF & _ "03-21-2004" & @CRLF & _ "02/24/2004" & @CRLF & _ "08/30/2011" & @CRLF & _ "September 27 2003" & @CRLF & _ "Aug 3 2003" & @CRLF & _ "August 15, 2014" & @CRLF & _ "October 17 2019" & @CRLF & _ "June 26th 2011" & @CRLF & _ "05.16.2021" & @CRLF & _ "12-21-2018" & @CRLF & _ "August 19th 2003" & @CRLF & _ "June 2nd, 2022" & @CRLF & _ "November 11th, 1999" & @CRLF & _ "August 10 2012" & @CRLF & _ "Jan 28th 2019" & @CRLF & _ "Jun 10th 2012" & @CRLF & _ "Jan 18th, 2014" & @CRLF & _ "October 30, 2015" & @CRLF & _ "April 21 2000" & @CRLF & _ "August 18 2002" & @CRLF & _ "September 1, 2014" & @CRLF & _ "Sep 9th 2003" & @CRLF & _ "09-16-2007" & @CRLF & _ "May 3rd, 2003" & @CRLF & _ "March 16, 2016" & @CRLF & _ "Jul 24 2002" & @CRLF & _ "08-19-1999" & @CRLF & _ "February 3, 2013" & @CRLF & _ "January 17 2010" & @CRLF & _ "11-12-2002" & @CRLF & _ "January 29 2006" & @CRLF & _ "04.24.2004" & @CRLF & _ "Aug 25, 2002" & @CRLF & _ "October 16 2001" & @CRLF & _ "August 15 2022" & @CRLF & _ "06-20-2011" & @CRLF & _ "06-27-2004" & @CRLF & _ "December 28, 2015" & @CRLF & _ "Apr 1st 2004" & @CRLF & _ "Sep 21, 2002" & @CRLF & _ "Oct 19th, 2007" & @CRLF & _ "August 12, 1999" & @CRLF & _ "January 29, 2012" & @CRLF & _ "04.01.1998" & @CRLF & _ "10.06.2021" & @CRLF & _ "October 31, 2012" & @CRLF & _ "April 28th, 2017" & @CRLF & _ "March 5, 2019" & @CRLF & _ "04/01/2016" & @CRLF & _ "03.12.2016" & @CRLF & _ "Dec 23rd, 2010" & @CRLF & _ "02-15-2022" & @CRLF & _ "January 14 2016" & @CRLF & _ "05/23/2019" & @CRLF & _ "07.10.2012" & @CRLF & _ "Sep 25th, 2001" & @CRLF & _ "10/14/2003" & @CRLF & _ "March 30th 2021" & @CRLF & _ "April 25th, 1999" & @CRLF & _ "Mar 20th 2015" & @CRLF & _ "Apr 17th, 2011" & @CRLF & _ "11-30-2007" & @CRLF & _ "04/21/2001" & @CRLF & _ "08/07/2006" & @CRLF & _ "November 15 2002" & @CRLF & _ "11-30-2014" & @CRLF & _ "07/26/2013" & @CRLF & _ "February 8, 2020" & @CRLF & _ "06.17.1999" & @CRLF & _ "01/13/2002" & @CRLF & _ "10/19/2009" & @CRLF & _ "12-20-2020" & @CRLF & _ "March 5 2001" & @CRLF & _ "10.05.2010" & @CRLF & _ "Feb 22nd, 2020" & @CRLF & _ "May 25th, 2013" & @CRLF & _ "12-06-1998" & @CRLF & _ "09.05.2013" & @CRLF & _ "05.09.2014" & @CRLF & _ "12/30/2016" & @CRLF & _ "May 2 2003" & @CRLF & _ "07.10.2006" & @CRLF & _ "07.17.2011" & @CRLF & _ "11/04/2006" & @CRLF & _ "April 29 2018" & @CRLF & _ "03-27-2005" & @CRLF & _ "May 1, 2006" & @CRLF & _ "02.23.2002" & @CRLF & _ "03.02.1998" & @CRLF & _ "12/12/2002" & @CRLF & _ "08-08-2002" & @CRLF & _ "08/31/2018" & @CRLF & _ "05-10-2011" & @CRLF & _ "07.10.2015" & @CRLF & _ "12.02.2012" & @CRLF & _ "Aug 4, 2022" & @CRLF & _ "06.12.2021" & @CRLF & _ "01.13.2020" & @CRLF & _ "October 1st 1998" & @CRLF & _ "August 19, 2013" & @CRLF & _ "Mar 18 2021" & @CRLF & _ "06.18.2009" & @CRLF & _ "08.12.2012" & @CRLF & _ "10-03-2022" & @CRLF & _ "04-21-2018" & @CRLF & _ "10/30/2015" & @CRLF & _ "May 14 2019" & @CRLF & _ "05/22/2012" & @CRLF & _ "02.18.2014" & @CRLF & _ "03.20.2022" & @CRLF & _ "01.09.2006" & @CRLF & _ "March 2 2014" & @CRLF & _ "Mar 16 2011" & @CRLF & _ "10-08-1999" & @CRLF & _ "09-14-2010" & @CRLF & _ "11.23.2002" & @CRLF & _ "April 28th, 2004" & @CRLF & _ "04-12-2007" & @CRLF & _ "June 1st 2003" & @CRLF & _ "July 2nd 2007" & @CRLF & _ "December 14, 2016" & @CRLF & _ "10/26/2019" & @CRLF & _ "February 11th 2015" & @CRLF & _ "February 12th, 2018" & @CRLF & _ "01/08/2004" & @CRLF & _ "September 22nd, 2004" & @CRLF & _ "August 17th, 2000" & @CRLF & _ "November 22nd 2021" & @CRLF & _ "June 10th 2003" & @CRLF & _ "Jul 17th 1999" & @CRLF & _ "09-01-2014" & @CRLF & _ "July 21st 2015" & @CRLF & _ "January 11 2013" & @CRLF & _ "03/04/2005" & @CRLF & _ "02-08-2018" & @CRLF & _ "Mar 20, 2001" & @CRLF & _ "04/03/2016" & @CRLF & _ "September 11, 2021" & @CRLF & _ "01/30/2016" & @CRLF & _ "April 8 2009" & @CRLF & _ "05/08/2010" & @CRLF & _ "Jan 15th 2008" & @CRLF & _ "02-13-2022" & @CRLF & _ "Apr 15th, 2016" & @CRLF & _ "Sep 4 2020" & @CRLF & _ "Nov 10, 2008" & @CRLF & _ "March 30 2014" & @CRLF & _ "07.27.2005" & @CRLF & _ "01.27.2021" & @CRLF & _ "June 9th 2021" & @CRLF & _ "Feb 23rd, 2020" & @CRLF & _ "06.05.2015" & @CRLF & _ "02-23-2000" & @CRLF & _ "Feb 12, 2020" & @CRLF & _ "May 1st 1998" & @CRLF & _ "03/08/2017" & @CRLF & _ "03-27-2007" & @CRLF & _ "July 13, 1998" & @CRLF & _ "01/01/2000" & @CRLF & _ "Apr 2, 1998" & @CRLF & _ "02.14.2014" & @CRLF & _ "Mar 22 2005" & @CRLF & _ "Jan 4 2012" & @CRLF & _ "08-28-2015" & @CRLF & _ "Jan 21st, 2015" & @CRLF & _ "Jul 7th, 2006" & @CRLF & _ "05-04-2004" & @CRLF & _ "Apr 4, 1999" & @CRLF & _ "11/04/2016" & @CRLF & _ "10-26-2009" & @CRLF & _ "June 22 2006" & @CRLF & _ "08/24/2022" & @CRLF & _ "12-14-2012" & @CRLF & _ "Feb 28, 2001" & @CRLF & _ "09/21/2000" & @CRLF & _ "Aug 24, 2016" & @CRLF & _ "October 22nd, 2001" & @CRLF & _ "June 21, 2005" & @CRLF & _ "August 27th, 2018" & @CRLF & _ "Feb 26th, 2020" & @CRLF & _ "February 14th, 2012" & @CRLF & _ "06.01.2008" & @CRLF & _ "07/20/2017" & @CRLF & _ "02.10.2022" & @CRLF & _ "July 27th 2009" & @CRLF & _ "10-08-2016" & @CRLF & _ "09/03/2005" & @CRLF & _ "Apr 12, 2005" & @CRLF & _ "Nov 22 2016" & @CRLF & _ "Mar 24, 2002" & @CRLF & _ "Sep 5, 1999" & @CRLF & _ "March 29th 1999" & @CRLF & _ "Feb 4, 1999" & @CRLF & _ "08/17/2002" & @CRLF & _ "November 13 2014" & @CRLF & _ "02-08-2013" & @CRLF & _ "Aug 1, 2009" & @CRLF & _ "Oct 8, 2015" & @CRLF & _ "03-20-2003" & @CRLF & _ "Mar 16, 2012" & @CRLF & _ "Nov 4 2017" & @CRLF & _ "Jan 28th, 2008" & @CRLF & _ "10-13-2017" & @CRLF & _ "Oct 24th 2012" & @CRLF & _ "Jul 11, 2003" & @CRLF & _ "Apr 17 2013" & @CRLF & _ "November 20th, 2020" & @CRLF & _ "09.06.2013" & @CRLF & _ "June 2, 2012" & @CRLF & _ "09/13/2010" & @CRLF & _ "Sep 28th, 2000" & @CRLF & _ "07-06-2005" & @CRLF & _ "Dec 13 2007" & @CRLF & _ "September 4 2004" & @CRLF & _ "June 20, 2010" & @CRLF & _ "12/28/2013" & @CRLF & _ "Mar 24 2004" & @CRLF & _ "March 8, 2012" & @CRLF & _ "02-18-2008" & @CRLF & _ "April 24 2013" & @CRLF & _ "02-27-2003" & @CRLF & _ "03.10.2022" & @CRLF & _ "Jul 18 2020" & @CRLF & _ "02-05-2004" & @CRLF & _ "03/26/2014" & @CRLF & _ "September 18th 1999" & @CRLF & _ "04/04/2021" & @CRLF & _ "June 10th, 2014" & @CRLF & _ "Jul 6th, 2007" & @CRLF & _ "April 21st 2022" & @CRLF & _ "09-17-2012" & @CRLF & _ "09/17/1999" & @CRLF & _ "03.22.1998" & @CRLF & _ "06/15/2000" & @CRLF & _ "January 11 2008" & @CRLF & _ "March 5, 1999" & @CRLF & _ "11/07/2011" & @CRLF & _ "04/22/2017" & @CRLF & _ "05-21-2012" & @CRLF & _ "Aug 2 2011" Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH) Local $aFullArray[0] For $i = 0 To UBound($aArray) -1 _ArrayConcatenate($aFullArray, $aArray[$i]) Next $aArray = $aFullArray ; Present the entire match result _ArrayDisplay($aArray, "Result")

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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm