Regex Patterns Library

Explore our comprehensive collection of regular expression patterns. Find the perfect pattern for your needs or get inspired for your own regex solutions.

36 patterns

Email Validation

Validates email addresses with improved RFC 5322 compliance

Pattern

^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$

Example

user.name+tag@example.com

Explanation

Matches email addresses with: - Local part: letters, numbers, and special characters - @ symbol - Domain: letters, numbers, and hyphens - TLD: letters and numbers Note: This is a practical pattern that covers most common email addresses while avoiding ReDoS risks.

URL Validation

Validates URLs with improved security and standards compliance

Pattern

^(https?:\/\/)?(?:[\w-]+\.)+[a-zA-Z]{2,}(?:\/[\w\-\.~:/?#\[\]@!\$&'\(\)\*\+,;=%.]+)*$

Example

https://example.com/path?query=value#section

Explanation

Matches URLs with: - Optional protocol (http:// or https://) - Domain with subdomains - TLD (2+ characters) - Optional path, query parameters, and fragments Note: For production use, consider using a dedicated URL parsing library.

Phone Number

Validates international phone numbers in E.164 format

Pattern

^\+[1-9]\d{1,14}$

Example

+1234567890

Explanation

Matches international phone numbers that: - Start with + (mandatory) - First digit after + is 1-9 - Total length: 1-15 digits after + Note: This validates format only. For actual number validation, use a phone number validation service.

Date Format (YYYY-MM-DD)

Validates dates in YYYY-MM-DD format

Pattern

^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$

Example

2024-03-20

Explanation

Requirements: - Year: 4 digits - Month: 01-12 - Day: 01-31 Note: This validates format only. For actual date validation, use a date parsing library.

ISO 8601 Date Time

Validates dates and times in ISO 8601 format

Pattern

^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d{1,3})?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$

Example

2024-03-20T15:30:45.123Z

Explanation

Requirements: - Date: YYYY-MM-DD - Time: HH:mm:ss - Optional milliseconds - Timezone: Z or ±HH:mm Note: This validates format only. For actual date validation, use a date parsing library.

Unix Timestamp

Validates Unix timestamps (seconds since epoch)

Pattern

^\d{10}$

Example

1710936000

Explanation

Requirements: - 10 digits - Seconds since Unix epoch (Jan 1, 1970) Note: This validates format only. For actual date validation, use a date parsing library.

Unix Timestamp (Milliseconds)

Validates Unix timestamps in milliseconds

Pattern

^\d{13}$

Example

1710936000000

Explanation

Requirements: - 13 digits - Milliseconds since Unix epoch Note: This validates format only. For actual date validation, use a date parsing library.

US Date Format (MM/DD/YYYY)

Validates dates in US format (MM/DD/YYYY)

Pattern

^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$

Example

03/20/2024

Explanation

Requirements: - Month: 01-12 - Day: 01-31 - Year: 4 digits - Separator: / Note: This validates format only. For actual date validation, use a date parsing library.

European Date Format (DD/MM/YYYY)

Validates dates in European format (DD/MM/YYYY)

Pattern

^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$

Example

20/03/2024

Explanation

Requirements: - Day: 01-31 - Month: 01-12 - Year: 4 digits - Separator: / Note: This validates format only. For actual date validation, use a date parsing library.

RFC 2822 Date Format

Validates dates in RFC 2822 format

Pattern

^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s\d{2}\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{4}\s(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d\s(?:[+-](?:[01]\d|2[0-3]):[0-5]\d|UT|GMT|EST|EDT|CST|CDT|MST|MDT|PST|PDT|[A-IK-Z])$

Example

Wed, 20 Mar 2024 15:30:45 +0000

Explanation

Requirements: - Day of week: Mon-Sun - Day: 01-31 - Month: Jan-Dec - Year: 4 digits - Time: HH:mm:ss - Timezone: ±HH:mm or abbreviation Note: This validates format only. For actual date validation, use a date parsing library.

Relative Date Format

Validates relative date expressions

Pattern

^(?:yesterday|today|tomorrow|last\s(?:week|month|year)|next\s(?:week|month|year)|\d+\s(?:days?|weeks?|months?|years?)\s(?:ago|from\snow))$

Example

2 days ago

Explanation

Requirements: - Common relative terms - Number + unit combinations - Direction indicators (ago/from now) Note: This validates format only. For actual date calculation, use a date parsing library.

Short Year Format (YY/MM/DD)

Validates dates with 2-digit years

Pattern

^(?:[0-9]{2})\/(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])$

Example

24/03/20

Explanation

Requirements: - Year: 2 digits - Month: 01-12 - Day: 01-31 - Separator: / Note: This validates format only. For actual date validation, use a date parsing library.

ISO Week Date Format

Validates dates in ISO week date format

Pattern

^\d{4}-W(?:0[1-9]|[1-4]\d|5[0-3])-[1-7]$

Example

2024-W12-3

Explanation

Requirements: - Year: 4 digits - Week: 01-53 - Day: 1-7 (Monday-Sunday) - Separator: - Note: This validates format only. For actual date validation, use a date parsing library.

Strong Password

Requires at least 12 characters with multiple character types

Pattern

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-_=+{};:,<.>])[A-Za-z\d!@#$%^&*()\-_=+{};:,<.>]{12,}$

Example

P@ssw0rd2024!

Explanation

Requirements: - Length: ≥12 characters - Uppercase: ≥1 - Lowercase: ≥1 - Numbers: ≥1 - Special chars: ≥1 Note: Consider using a password strength estimator for better security.

Medium Strength Password

Requires at least 8 characters with multiple character types

Pattern

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,}$

Example

Passw0rd

Explanation

Requirements: - Length: ≥8 characters - Uppercase: ≥1 - Lowercase: ≥1 - Numbers: ≥1

Basic Password

Requires at least 6 characters with at least one letter and one number

Pattern

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$

Example

pass123

Explanation

Requirements: - Length: ≥6 characters - Letters: ≥1 - Numbers: ≥1

Complex Password

Requires at least 12 characters with specific character type requirements

Pattern

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-_=+{};:,<.>])[A-Za-z\d!@#$%^&*()\-_=+{};:,<.>]{12,}$

Example

P@ssw0rd2024!

Explanation

Requirements: - Length: ≥12 characters - Uppercase: ≥1 - Lowercase: ≥1 - Numbers: ≥1 - Special chars: ≥1 Note: Consider using a password strength estimator for better security.

Minimal Password

Requires at least 4 characters with at least one letter

Pattern

^(?=.*[A-Za-z])[A-Za-z\d]{4,}$

Example

pass

Explanation

Requirements: - Length: ≥4 characters - Letters: ≥1 Note: This is a very weak password policy and should be avoided in production.

Password Without Spaces

Requires at least 8 characters with no spaces allowed

Pattern

^[^\s]{8,}$

Example

Password123

Explanation

Requirements: - Length: ≥8 characters - No spaces allowed

Alphanumeric Password

Requires at least 8 characters with only letters and numbers

Pattern

^[A-Za-z\d]{8,}$

Example

Password123

Explanation

Requirements: - Length: ≥8 characters - Only letters and numbers allowed

Password with Max Length

Requires 8-20 characters with at least one letter and one number

Pattern

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$

Example

Password123

Explanation

Requirements: - Length: 8-20 characters - Letters: ≥1 - Numbers: ≥1 Note: Modern security guidelines recommend against maximum length restrictions.

IPv4 Address

Validates IPv4 addresses

Pattern

^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

Example

192.168.1.1

Explanation

Matches valid IPv4 addresses with: - Four octets (0-255) - Dots as separators - No leading zeros Note: This validates format only. For network validation, use additional checks.

IPv6 Address

Validates IPv6 addresses

Pattern

^(?:(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,5}(?::[0-9a-fA-F]{1,4}){1,2}|(?:[0-9a-fA-F]{1,4}:){1,4}(?::[0-9a-fA-F]{1,4}){1,3}|(?:[0-9a-fA-F]{1,4}:){1,3}(?::[0-9a-fA-F]{1,4}){1,4}|(?:[0-9a-fA-F]{1,4}:){1,2}(?::[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(?:(?::[0-9a-fA-F]{1,4}){1,6})|:(?:(?::[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(?::[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(?:ffff(?::0{1,4}){0,1}:){0,1}(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])|(?:[0-9a-fA-F]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$

Example

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Explanation

Matches valid IPv6 addresses with: - Eight 16-bit hexadecimal groups - Groups separated by colons - Optional compression of consecutive zero groups - Optional IPv4-mapped format - Optional zone index for link-local addresses Note: This validates format only. For network validation, use additional checks.

Credit Card Number

Validates credit card numbers

Pattern

^(?:4[0-9]{12}(?:[0-9]{3}){0,2}|5[1-5][0-9]{14}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9]|9[0-9])[0-9]{11,14}|6(?:011|4[4-9][0-9]|5[0-9]{2})[0-9]{12,15}|35(?:2[8-9]|[3-8][0-9])[0-9]{12,15}|62[0-9]{14,17})$

Example

4111111111111111

Explanation

Matches major credit card formats: - Visa (4): 13, 16, or 19 digits - Mastercard (51-55, 2221-2720): 16 digits - Amex (34, 37): 15 digits - Diners Club (300-305, 36, 38, 39): 14-19 digits - Discover (6011, 644-649, 65): 16-19 digits - JCB (3528-3589): 16-19 digits - UnionPay (62): 16-19 digits Note: Must be followed by Luhn algorithm check.

Visa Card

Validates Visa card numbers

Pattern

^4[0-9]{12}(?:[0-9]{3}){0,2}$

Example

4111111111111111

Explanation

Matches Visa card numbers that: - Start with 4 - Are 13, 16, or 19 digits long Note: Must be followed by Luhn algorithm check.

Mastercard

Validates Mastercard numbers

Pattern

^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$

Example

5105105105105100

Explanation

Matches Mastercard numbers that: - Start with 51-55 or 2221-2720 - Are exactly 16 digits long Note: Must be followed by Luhn algorithm check.

American Express Card

Validates American Express card numbers

Pattern

^3[47][0-9]{13}$

Example

378282246310005

Explanation

Matches American Express card numbers that: - Start with 34 or 37 - Are exactly 15 digits long Note: Must be followed by Luhn algorithm check.

Diners Club Card

Validates Diners Club card numbers

Pattern

^3(?:0[0-5]|[68][0-9]|9[0-9])[0-9]{11,14}$

Example

30569309025904

Explanation

Matches Diners Club card numbers that: - Start with 300-305, 36, 38, or 39 - Are 14-19 digits long Note: Must be followed by Luhn algorithm check.

Discover Card

Validates Discover card numbers

Pattern

^6(?:011|4[4-9][0-9]|5[0-9]{2})[0-9]{12,15}$

Example

6011111111111117

Explanation

Matches Discover card numbers that: - Start with 6011, 644-649, or 65 - Are 16-19 digits long Note: Must be followed by Luhn algorithm check.

JCB Card

Validates JCB card numbers

Pattern

^35(?:2[8-9]|[3-8][0-9])[0-9]{12,15}$

Example

3530111333300000

Explanation

Matches JCB card numbers that: - Start with 3528-3589 - Are 16-19 digits long Note: Must be followed by Luhn algorithm check.

Union Pay Card

Validates Union Pay card numbers

Pattern

^62[0-9]{14,17}$

Example

6212345678901234

Explanation

Matches Union Pay card numbers that: - Start with 62 - Are 16-19 digits long Note: Must be followed by Luhn algorithm check.

Hipercard

Validates Hipercard numbers

Pattern

^(?:384100|384140|384160|606282|637095|637568|637599|637609|637612|60(?!11)[0-9]{4})(?:[0-9]{8}|[0-9]{10})$

Example

3841001234567890

Explanation

Matches Hipercard numbers that: - Start with specific BIN ranges (384100, 384140, etc.) or 60xxxx (not 6011xx) - Are 14 or 16 digits long Note: Must be followed by Luhn algorithm check.

Maestro Card

Validates Maestro card numbers

Pattern

^(?:5[0678]\d\d|6304|6390|67\d\d)\d{8,15}$

Example

5018123456789012

Explanation

Matches Maestro card numbers that: - Start with 50, 56-58, 6304, 6390, or 67 - Are 12-19 digits long Note: Must be followed by Luhn algorithm check.

Laser Card

Validates Laser card numbers

Pattern

^(?:6304|6706|6771|6709)[0-9]{12,15}$

Example

6706123456789012

Explanation

Matches Laser card numbers that: - Start with 6304, 6706, 6771, or 6709 - Are 16-19 digits long Note: Laser is a defunct card scheme.

Solo Card

Validates Solo card numbers

Pattern

^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$

Example

6334123456789012

Explanation

Matches Solo card numbers that: - Start with 6334 or 6767 - Are 16, 18, or 19 digits long Note: Solo is a defunct card scheme.

Switch Card

Validates Switch card numbers

Pattern

^(?:4903|4905|4911|4936|6333|6759)[0-9]{12}|(?:4903|4905|4911|4936|6333|6759)[0-9]{14}|(?:4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$

Example

4903123456789012

Explanation

Matches Switch card numbers that: - Start with 4903, 4905, 4911, 4936, 6333, or 6759 and are 16, 18, or 19 digits - Start with 564182 and are 16, 18, or 19 digits - Start with 633110 and are 16, 18, or 19 digits Note: Switch is a defunct card scheme.