A regular expression is a way to describe a pattern in a string.

With regular expression you can use the following concepts: Match Characters, Character Ranges, Wildcards, Repetition, Exclusion, Alteration, etc.

? Zero or one (optional character).
* Zero or more (optional characters).
+ One or more (e.g. letter or word).

. Any character except new line \n.
[] Unordered Character Set – It’ll always match only one position of the string.
[A-Z] Ranges – Matches one capital letter in the example.
[^] Negated Character Set. Example: [^A-Z] not uppercase letters.
() Group

\d Digit Character – Similar to [0-9].
\D Not Digit Character.
\w Word Character – Similar to [A-Za-z0-9_].
\W Not Word Character.
\s Whitespace Character – Similar to [ \t\n\r\f].
\S Not Whitespace Character.

{,} Character Repetition [Range]
| Alternation (i.e Or)

^ Beginning of string. It only represents location.
$ End of string. It only represents location.


Example

toy[ -]?boats?

Matches:
toyboat
toyboats
toy boat
toy boats
toy-boat
toy-boats
Doesn’t Match: toy -boat, toy boats.

Example

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

Matches:
000-35-6548
000-67-6587

Example

\w{5,9}

Matches:
AS53E3Z9T
L0001

Example

\w{10,}

Matches:
regular_expression
characters Repetitions

Example

m[^@.]

Doesn’t Match: m at the end of toy@boat.com
Because the regex above searches for an m that is followed by a character, just not an @ or a ..

Example

\W

Matches: @ and . in toy@boat.com

Example

car|boat

Matches: car and boat.

Example

^tart$

Matches:
tart
Doesn’t Match:
start
tartan

Example

^(www\.)?google\.(com|net)$

Matches:
google.com
google.net
www.google.com
www.google.net
Doesn’t Match:
google.org
wwwgoogle.com
www.google.commmm

Example

pro[^s]*ctor

Matches:
projector
protractor
proctor
Doesn’t Match: prospector

Example

img_(sm_\d*|\d+)\.(jpg|png)+

Matches:
img_sm_01.jpg
img_01.jpg
img_sm_02.jpg
img_02.jpg
img_sm_03.jpg
img_03.jpg
img_sm_04.png
img_04.png
Doesn’t Match: img.gif

Example

(www\.)?\w+\.com

Matches:
www.github.com
github.com
www.teamtreehouse.com
teamtreehouse.com
api.github.com
Doesn’t Match: jsfiddle.netwww.jsfiddle.net

Example

^img_\d+\.(jpg|png|gif)

Matches:
img_01.jpg
img_02.png
img_03.gif
img_04.png
img_05.gif
img_06.jpg
Doesn’t Match:
6_img_07.gif
mov_01.avi

Example

^pro[^s]+ct(or|ed)$

Matches:
projector
protractor
projected
Doesn’t Match:
proctor
my projector
projecting
projectorlight

Example

^3\d{3,4}$

Matches:
3456
34567
Doesn’t Match:
23456
345678