Regular
Expressions
101
@regex101
Follow me on twitter!
Donate
Like regex101? Support it by donating!
Sponsor
Become a sponsor!
Contact
Send me an email
Bug Reports & Feedback
Bugs or suggestions go here
Wiki
Wiki (Info & FAQ)
Whats new?
Whats new?
Regex Editor
Regex Editor
Regex Library
Regex Library
Account
Account
Regex Quiz
Regex Quiz
Settings
Settings
Live Help
Live Help
Consider a donation
Consider a donation
Become a sponsor
Become a sponsor
Save & Share
Save Regex
ctrl+s
Update Regex
ctrl+⇧+s
Flavor
PCRE2 (PHP >=7.3)
PCRE (PHP <7.3)
ECMAScript (JavaScript)
Python 2.7
Golang (RE2)
Function
Match
Substitution
List
Unit Tests
Tools
Code Generator
Sponsor
Jamstack at Scale
Explanation
/
^
(
0
|
[
1
-
9
]
\d
*
)
\.
(
0
|
[
1
-
9
]
\d
*
)
\.
(
0
|
[
1
-
9
]
\d
*
)(?:
-
(
(?:
0
|
[
1
-
9
]
\d
*
|
\d
*
[
a
-
zA
-
Z-
]
[
0
-
9a
-
zA
-
Z-
]
*
)(?:
\.
(?:
0
|
[
1
-
9
]
\d
*
|
\d
*
[
a
-
zA
-
Z-
]
[
0
-
9a
-
zA
-
Z-
]
*
)
)*
)
)?(?:
\+
(
[
0
-
9a
-
zA
-
Z-
]
+
(?:
\.
[
0
-
9a
-
zA
-
Z-
]
+
)*
)
)?
$
/
gm
^
asserts position at start of a line
Lines are delimited by \n, \r, \u2028, \u2029 (with no special consideration for the \r\n sequence)
1st Capturing Group
(
0
|
[
1
-
9
]
\d
*
)
1st Alternative
0
0
matches the character
0
literally (case sensitive)
2nd Alternative
[
1
-
9
]
\d
*
Match a single character present in the list below
[
1
-
9
]
1-9
a single character in the range between
1
(index 49)
and
9
(index 57)
(case sensitive)
\d
*
matches a digit (equal to
[0-9]
)
*
Quantifier
— Matches between
zero
and
unlimited
times, as many times as possible, giving back as needed
(greedy)
\.
matches the character
.
literally (case sensitive)
2nd Capturing Group
(
0
|
[
1
-
9
]
\d
*
)
1st Alternative
0
0
matches the character
0
literally (case sensitive)
2nd Alternative
[
1
-
9
]
\d
*
Match a single character present in the list below
[
1
-
9
]
1-9
a single character in the range between
1
(index 49)
and
9
(index 57)
(case sensitive)
\d
*
matches a digit (equal to
[0-9]
)
*
Quantifier
— Matches between
zero
and
unlimited
times, as many times as possible, giving back as needed
(greedy)
\.
matches the character
.
literally (case sensitive)
3rd Capturing Group
(
0
|
[
1
-
9
]
\d
*
)
1st Alternative
0
0
matches the character
0
literally (case sensitive)
2nd Alternative
[
1
-
9
]
\d
*
Match a single character present in the list below
[
1
-
9
]
1-9
a single character in the range between
1
(index 49)
and
9
(index 57)
(case sensitive)
\d
*
matches a digit (equal to
[0-9]
)
Non-capturing group
(?:
-
(
(?:
0
|
[
1
-
9
]
\d
*
|
\d
*
[
a
-
zA
-
Z-
]
[
0
-
9a
-
zA
-
Z-
]
*
)(?:
\.
(?:
0
|
[
1
-
9
]
\d
*
|
\d
*
[
a
-
zA
-
Z-
]
[
0
-
9a
-
zA
-
Z-
]
*
)
)*
)
)?
?
Quantifier
— Matches between
zero
and
one
times, as many times as possible, giving back as needed
(greedy)
-
matches the character
-
literally (case sensitive)
4th Capturing Group
(
(?:
0
|
[
1
-
9
]
\d
*
|
\d
*
[
a
-
zA
-
Z-
]
[
0
-
9a
-
zA
-
Z-
]
*
)(?:
\.
(?:
0
|
[
1
-
9
]
\d
*
|
\d
*
[
a
-
zA
-
Z-
]
[
0
-
9a
-
zA
-
Z-
]
*
)
)*
)
Non-capturing group
(?:
\+
(
[
0
-
9a
-
zA
-
Z-
]
+
(?:
\.
[
0
-
9a
-
zA
-
Z-
]
+
)*
)
)?
?
Quantifier
— Matches between
zero
and
one
times, as many times as possible, giving back as needed
(greedy)
\+
matches the character
+
literally (case sensitive)
5th Capturing Group
(
[
0
-
9a
-
zA
-
Z-
]
+
(?:
\.
[
0
-
9a
-
zA
-
Z-
]
+
)*
)
$
asserts position at the end of a line
Lines are delimited by \n, \r, \u2028, \u2029 (with no special consideration for the \r\n sequence)
Global pattern flags
g modifier:
g
lobal. All matches (don't return after first match)
m modifier:
m
ulti line. Causes
^
and
$
to match the begin/end of each line (not only begin/end of string)
Match Information
Your regular expression does not match the subject string.
Quick Reference
Regular Expression
v1
Select Regex Version
No Match
/
Change delimiter
/
gm
Set Regex Options
Copy to clipboard
Test String
Code Generator
Language
AutoIt
C#
Golang
Java
JavaScript
Perl
PHP
Python
Ruby
Rust
SED
Swift 5.2
Generated Code
Loading code sample...
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 JavaScript, please visit:
https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions
Regular
Expressions
101
Please wait while the app is loading...
Please enable JavaScript to use this web application.