Skip to main content
CheckTown

Regex Library

Browse common regex patterns organized by category

Test your patterns in our Regex Tester

Email

Simple Email

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Matches a basic email address format

Match: user@example.comNo match: user@.com

Email with Display Name

^[^<]*<[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}>$

Matches an email with a display name like "John Doe <john@example.com>"

Match: John Doe <john@example.com>No match: john@example.com

Email Domain Extraction

@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})

Extracts the domain part from an email address

Match: user@example.comNo match: no-at-sign-here

No-Reply Email

^no-?reply@

Matches email addresses starting with no-reply or noreply

Match: no-reply@example.comNo match: contact@example.com

URL

URL with Protocol

^https?:\/\/[^\s/$.?#].[^\s]*$

Matches a URL starting with http:// or https://

Match: https://example.com/pathNo match: ftp://example.com

URL Slug

^[a-z0-9]+(?:-[a-z0-9]+)*$

Matches a URL-safe slug with lowercase letters, numbers, and hyphens

Match: my-blog-postNo match: My Blog Post

Domain Name

^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$

Matches a valid domain name like example.com or sub.domain.org

Match: sub.example.comNo match: -invalid.com

URL Query Parameter

[?&]([^=]+)=([^&]*)

Extracts key=value pairs from URL query strings

Match: ?name=John&age=30No match: /path/without/params

YouTube Video ID

(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]{11})

Extracts the 11-character video ID from YouTube URLs

Match: https://youtu.be/dQw4w9WgXcQNo match: https://vimeo.com/12345

Date & Time

ISO 8601 Date

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

Matches dates in ISO 8601 format (YYYY-MM-DD)

Match: 2024-12-31No match: 31-12-2024

Date (MM/DD/YYYY)

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

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

Match: 12/31/2024No match: 31/12/2024

Date (DD/MM/YYYY)

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

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

Match: 31/12/2024No match: 2024-12-31

24-Hour Time

^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d))?$

Matches time in 24-hour format with optional seconds

Match: 23:59:59No match: 25:00

12-Hour Time

^(0?[1-9]|1[0-2]):[0-5]\d\s?(?:AM|PM|am|pm)$

Matches time in 12-hour format with AM/PM

Match: 2:30 PMNo match: 13:30 PM

Number

Integer

^-?\d+$

Matches positive or negative whole numbers

Match: -42No match: 3.14

Decimal Number

^-?\d+\.?\d*$

Matches positive or negative numbers with optional decimal part

Match: 3.14No match: abc

Hex Color

^#(?:[0-9a-fA-F]{3}){1,2}$

Matches 3 or 6 digit hex color codes with # prefix

Match: #ff6600No match: #gggggg

Currency (USD)

^\$\d{1,3}(,\d{3})*(\.\d{2})?$

Matches US dollar amounts with optional cents and thousands separators

Match: $1,234.56No match: 1234.56

Percentage

^-?\d+(\.\d+)?%$

Matches percentage values with optional decimal part

Match: 99.9%No match: 99.9

Phone

International Phone

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

Matches international phone numbers in E.164 format

Match: +14155552671No match: 0000000

US Phone

^(\+1)?[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$

Matches US phone numbers in various formats

Match: (415) 555-2671No match: 123

Phone with Extension

^(\+?\d{1,3})?[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}(\s*(ext|x|ext.)\s*\d{2,5})?$

Matches phone numbers with optional country code and extension

Match: +1 415-555-2671 ext 1234No match: not-a-phone

Digits Only (Phone)

^\d{10,15}$

Matches phone numbers as digit-only strings (10 to 15 digits)

Match: 4155552671No match: 12345

IP & Network

IPv4 Address

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

Matches a valid IPv4 address (0.0.0.0 to 255.255.255.255)

Match: 192.168.1.1No match: 256.1.1.1

IPv4 with Port

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

Matches an IPv4 address followed by a port number

Match: 192.168.1.1:8080No match: 192.168.1.1

IPv6 Address

^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

Matches a full IPv6 address (8 groups of hex digits)

Match: 2001:0db8:85a3:0000:0000:8a2e:0370:7334No match: 192.168.1.1

MAC Address

^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$

Matches a MAC address with colon or dash separators

Match: 00:1A:2B:3C:4D:5ENo match: 001A2B3C4D5E

CIDR Notation

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

Matches an IPv4 address with CIDR subnet notation

Match: 192.168.1.0/24No match: 192.168.1.0/33

File & Path

File Extension

\.([a-zA-Z0-9]+)$

Extracts the file extension from a filename

Match: document.pdfNo match: no-extension

Unix File Path

^\/(?:[^\/ ]+\/)*[^\/ ]+$

Matches an absolute Unix/Linux file path

Match: /usr/local/bin/nodeNo match: relative/path

Windows File Path

^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$

Matches an absolute Windows file path

Match: C:\Users\docs\file.txtNo match: /usr/local/bin

Image File

\.(jpe?g|png|gif|bmp|svg|webp|ico|tiff?)$

Matches filenames with common image extensions

Match: photo.jpgNo match: script.js

Password

Min 8 Characters

^.{8,}$

Matches any string with at least 8 characters

Match: password123No match: short

Strong Password

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

Requires uppercase, lowercase, digit, and special character (min 8 chars)

Match: P@ssw0rd!No match: password

No Spaces

^\S+$

Matches strings that contain no whitespace characters

Match: no-spaces-hereNo match: has spaces

Alphanumeric Only

^[a-zA-Z0-9]+$

Matches strings containing only letters and digits

Match: abc123No match: hello world!

HTML & XML

HTML Tag

<\/?[a-zA-Z][a-zA-Z0-9]*[^>]*>

Matches opening and closing HTML tags

Match: <div class="test">No match: plain text

HTML Comment

<!--[\s\S]*?-->

Matches HTML comments including multiline content

Match: <!-- comment -->No match: // js comment

HTML Attribute

([a-zA-Z-]+)\s*=\s*"([^"]*)"

Extracts attribute name and value pairs from HTML elements

Match: class="active"No match: no-attribute

Self-Closing Tag

<[a-zA-Z][a-zA-Z0-9]*[^>]*\/>

Matches self-closing HTML/XML tags like <br /> or <img />

Match: <img src="test.png" />No match: <div>content</div>

Miscellaneous

UUID v4

^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Matches a UUID version 4 string (lowercase hex)

Match: 550e8400-e29b-41d4-a716-446655440000No match: not-a-uuid

JWT Token

^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$

Matches the three-part structure of a JSON Web Token

Match: eyJhbGci.eyJzdWIi.SflKxwRJNo match: not.a.jwt.token

Markdown Link

\[([^\]]+)\]\(([^)]+)\)

Matches Markdown-style links [text](url)

Match: [Google](https://google.com)No match: plain text link

Semantic Version

^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*))?$

Matches semantic version strings like 1.2.3 or v2.0.0-beta.1

Match: v2.1.0-beta.1No match: 1.2

Base64 String

^[A-Za-z0-9+/]*={0,2}$

Matches valid Base64-encoded strings

Match: SGVsbG8gV29ybGQ=No match: Hello World!!!

Dowiedz się więcej

Regex Library: Common Patterns You'll Actually Use

Browse a curated collection of regex patterns for email, URL, date, and more.

Czym jest biblioteka regex?

Biblioteka regex to starannie dobrana kolekcja wzorów wyrażeń regularnych do typowych zadań walidacji i ekstrakcji. Zamiast pisać regex od zera za każdym razem, możesz przeglądać przetestowane wzorce dla emailów, URL, dat, adresów IP i dziesiątek innych formatów.