Regex Pattern Library
111 patterns across 10 categories — with live tester and one-click copy
Email Address
Matches a standard email address.
/[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}/gi Example: hello@example.com
Email Address (Strict)
RFC 5322 compliant email address validation.
/^[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])?)*$/i Example: user.name+tag@sub.domain.co.uk
HTTP/HTTPS URL
Matches HTTP and HTTPS URLs.
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/gi Example: https://www.example.com/path?query=1
URL (any protocol)
Matches any URL with a protocol prefix (http, ftp, mailto, etc.).
/[a-zA-Z][a-zA-Z0-9+\-.]*:\/\/[^\s/$.?#].[^\s]*/gi Example: ftp://files.example.com/resource
Domain Name
Matches a domain name (with or without subdomains).
/(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}/gi Example: sub.example.co.uk
URL Slug
Matches a valid URL slug (lowercase letters, numbers, hyphens).
/^[a-z0-9]+(?:-[a-z0-9]+)*$/ Example: my-page-title-123
Query String Parameter
Extracts key=value pairs from a URL query string.
/[?&]([^=#]+)=([^&#]*)/g Example: ?page=2&sort=asc&filter=active
HTML Tag
Matches an opening HTML tag.
/<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>/gi Example: <div class="container">
HTML Closing Tag
Matches an HTML closing tag.
/<\/([a-zA-Z][a-zA-Z0-9]*)>/gi Example: </div>
HTML Self-Closing Tag
Matches self-closing HTML tags like <br />, <img />.
/<([a-zA-Z][a-zA-Z0-9]*)\b[^/]*/?>/gi Example: <img src="photo.jpg" alt="photo" />
HTML Comment
Matches HTML comments including multiline.
/<!--[\s\S]*?-->/g Example: <!-- This is a comment -->
HTML Attribute
Matches HTML attribute key="value" pairs.
/([a-zA-Z][\w-]*)=["']([^"']*)["']/g Example: class="main-nav" id="header"
CSS Hex Colour
Matches 3 or 6 digit CSS hex colour values.
/#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\b/g Example: #ff5733 and #fff
CSS rgb() / rgba()
Matches CSS rgb() and rgba() colour functions.
/rgba?\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}(?:\s*,\s*[0-9.]+)?\s*\)/gi Example: rgb(255, 87, 51) or rgba(255, 87, 51, 0.5)
CSS Class Selector
Matches CSS class selectors.
/\.[a-zA-Z_][a-zA-Z0-9_\-]*/g Example: .container .nav-item
US Phone Number
Matches US phone numbers in various formats.
/(?:\+1\s?)?\(?\d{3}\)?[\s.\-]?\d{3}[\s.\-]?\d{4}/g Example: (555) 123-4567 or +1 555.123.4567
UK Phone Number
Matches UK phone numbers including +44 prefix.
/(?:(?:\+44)|(?:0))(?:\s?\d){9,10}/g Example: +44 7911 123456 or 07911 123456
International Phone (E.164)
Matches E.164 format international phone numbers.
/\+[1-9]\d{1,14}/g Example: +447911123456
Generic Phone Number
Loosely matches phone numbers of 7–20 digits with common separators.
/[+]?[\d\s.\-()]{7,20}/g Example: +1 (800) 555-0100
Phone — Digits Only
Matches a raw phone number with only digits (7–15).
/^\d{7,15}$/ Example: 5551234567
ISO 8601 Date
Matches ISO 8601 formatted dates (YYYY-MM-DD).
/\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])/g Example: 2024-03-15
US Date (MM/DD/YYYY)
Matches US format dates (MM/DD/YYYY).
/(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}/g Example: 03/15/2024
EU Date (DD/MM/YYYY)
Matches European format dates (DD/MM/YYYY).
/(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[0-2])\/\d{4}/g Example: 15/03/2024
Time (24-hour)
Matches 24-hour time format (HH:MM or HH:MM:SS).
/([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d))?/g Example: 14:30 or 09:05:22
Time (12-hour AM/PM)
Matches 12-hour time format with AM/PM.
/(0?[1-9]|1[0-2]):([0-5]\d)(?::([0-5]\d))?\s?[AaPp][Mm]/g Example: 2:30 PM or 11:59:59am
ISO 8601 DateTime
Matches full ISO 8601 datetime strings including timezone.
/\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?/g Example: 2024-03-15T14:30:00Z
Unix Timestamp
Matches a 10-digit Unix timestamp (seconds since epoch).
/\b1[0-9]{9}\b/g Example: 1710500000
Year (4-digit)
Matches 4-digit years from 1900 to 2099.
/\b(19|20)\d{2}\b/g Example: 1995 or 2024
Integer
Matches positive or negative whole numbers.
/-?\b\d+\b/g Example: 42, -7, 1000
Decimal / Float
Matches decimal numbers (floating point).
/-?\b\d+\.\d+\b/g Example: 3.14, -0.5, 100.00
Number with Thousand Separators
Matches numbers formatted with commas as thousand separators.
/\b\d{1,3}(?:,\d{3})*(?:\.\d+)?\b/g Example: 1,234,567 or 1,000.50
Currency (USD/GBP/EUR)
Matches currency amounts prefixed with $, £, or €.
/[$£€]\s?\d{1,3}(?:,\d{3})*(?:\.\d{2})?/g Example: $1,299.99 or £45.00
Percentage
Matches percentage values.
/\b\d+(?:\.\d+)?\s?%/g Example: 99%, 12.5 %
Hexadecimal Number
Matches hexadecimal literals with 0x prefix.
/\b0[xX][0-9a-fA-F]+\b/g Example: 0xFF, 0x1a2b
Binary Number
Matches binary literals with 0b prefix.
/\b0[bB][01]+\b/g Example: 0b1010, 0B11001100
Octal Number
Matches octal literals with 0o prefix.
/\b0[oO][0-7]+\b/g Example: 0o755, 0O644
Scientific Notation
Matches numbers in scientific notation.
/-?\d+(?:\.\d+)?[eE][+-]?\d+/g Example: 1.5e10, -3.2E-4
Positive Integer Only
Validates a string is a positive integer (no zero, no negatives).
/^[1-9]\d*$/ Example: 1, 42, 100
Strong Password
Requires at least 8 chars, uppercase, lowercase, digit, and special character.
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]).{8,}$/ Example: MyP@ssw0rd!
Medium Password
Requires at least 6 characters with at least one letter and one digit.
/^(?=.*[a-zA-Z])(?=.*\d).{6,}$/ Example: hello1, abc123
Password (No Spaces)
Ensures password has no spaces and is at least 8 characters.
/^\S{8,}$/ Example: NoSpaces99
PIN (4 digits)
Validates a 4-digit numeric PIN.
/^\d{4}$/ Example: 1234
PIN (6 digits)
Validates a 6-digit numeric PIN or OTP.
/^\d{6}$/ Example: 123456
File Extension
Matches the file extension at the end of a filename.
/\.[a-zA-Z0-9]{1,10}$/i Example: document.pdf, image.jpeg
Filename with Extension
Matches a filename including its extension.
/[\w,\s\-]+\.[A-Za-z]{2,6}/g Example: my-document.pdf
Unix/Linux File Path
Matches Unix/Linux absolute file paths.
/(\/[a-zA-Z0-9._\-]+)+\/?/g Example: /var/www/html/index.html
Windows File Path
Matches Windows absolute file paths.
/[A-Za-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*/g Example: C:\Users\John\Documents\file.txt
Image File Extension
Matches common image file extensions.
/\.(jpg|jpeg|png|gif|bmp|svg|webp|tiff?|ico)$/i Example: photo.jpg, icon.svg
Video File Extension
Matches common video file extensions.
/\.(mp4|mkv|avi|mov|wmv|flv|webm|m4v|mpeg|mpg)$/i Example: video.mp4, movie.mkv
Audio File Extension
Matches common audio file extensions.
/\.(mp3|wav|flac|aac|ogg|wma|m4a|opus)$/i Example: music.mp3, podcast.flac
Document File Extension
Matches common document file extensions.
/\.(pdf|doc|docx|xls|xlsx|ppt|pptx|odt|ods|odp|txt|csv|rtf)$/i Example: report.pdf, spreadsheet.xlsx
Whitespace (1 or more)
Matches one or more whitespace characters (spaces, tabs, newlines).
/\s+/g Example: hello world
Empty Lines
Matches empty or whitespace-only lines.
/^\s*$/gm Example: line1 line4
Word
Matches individual words (letters only).
/\b[a-zA-Z]+\b/g Example: Hello world
Alphanumeric Word
Matches words containing letters and/or numbers.
/\b[a-zA-Z0-9]+\b/g Example: word123 or hello
Sentence
Matches a sentence starting with uppercase and ending with punctuation.
/[A-Z][^.!?]*[.!?]/g Example: Hello world. How are you?
Repeated Words
Detects consecutive duplicate words.
/\b(\w+)\s+\1\b/gi Example: the the quick brown fox
Quoted String
Matches strings wrapped in single or double quotes.
/"[^"]*"|'[^']*'/g Example: "hello world" or 'foo bar'
Emoji
Matches common emoji characters.
/[\u{1F300}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/gu InvalidExample: 🎉 Hello! 🚀
Hashtag
Matches social media hashtags.
/#[a-zA-Z]\w*/g Example: #webdev #javascript
@Mention
Matches @username mentions.
/@[a-zA-Z0-9_]{1,50}/g Example: @john_doe or @user123
UUID v4
Matches a UUID version 4 string.
/[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/gi Example: 550e8400-e29b-41d4-a716-446655440000
GUID (general)
Matches any GUID/UUID format regardless of version.
/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/g Example: A8098C1A-F86E-11DA-BD1A-00112444BE1E
US Social Security Number
Matches a US SSN in XXX-XX-XXXX format, excluding invalid prefixes.
/\b(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}\b/g Example: 123-45-6789
Credit Card Number
Matches Visa, Mastercard, Amex, and Discover card numbers.
/\b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12})\b/g Example: 4111111111111111
UK Passport Number
Matches a UK passport number (9 digits).
/[0-9]{9}/g Example: 123456789
ISBN-10
Matches an ISBN-10 book identifier.
/\b(?:\d[\s-]?){9}[\dX]\b/gi Example: 0-306-40615-2
ISBN-13
Matches an ISBN-13 book identifier.
/\b97(?:8|9)[\s-]?(?:\d[\s-]?){9}\d\b/g Example: 978-0-306-40615-7
CSS Named Colour
Matches common CSS named colours.
/\b(?:red|blue|green|yellow|orange|purple|pink|black|white|gray|grey|cyan|magenta|lime|indigo|violet|brown|teal|navy|maroon)\b/gi Example: The sky is blue and the grass is green.
Valid Variable Name
Validates a JavaScript/Python style variable name.
/^[a-zA-Z_$][a-zA-Z0-9_$]*$/ Example: myVar, _count, $element
Semantic Version (SemVer)
Matches semantic version strings like 1.2.3 or 2.0.0-beta.1.
/\bv?(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?\b/g Example: 1.0.0, 2.3.1-alpha.1, v3.0.0+build.123
IPv4 Address
Matches a valid IPv4 address.
/\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b/g Example: 192.168.1.1 or 255.255.255.0
IPv6 Address
Matches full and compressed IPv6 addresses.
/([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::(?:[0-9a-fA-F]{1,4}:){0,6}[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}/gi Example: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
CIDR Notation
Matches an IPv4 address with CIDR subnet mask.
/\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\/(?:[0-9]|[1-2]\d|3[0-2])\b/g Example: 192.168.1.0/24
MAC Address
Matches MAC addresses with colon or hyphen separators.
/([0-9A-Fa-f]{2}[:\-]){5}[0-9A-Fa-f]{2}/g Example: 00:1A:2B:3C:4D:5E
Port Number
Matches a valid TCP/UDP port number (0–65535) preceded by colon.
/:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)/g Example: :8080 or :443
Localhost URL
Matches localhost URLs with optional port and path.
/https?:\/\/localhost(?::\d{1,5})?(?:\/[^\s]*)?/gi Example: http://localhost:3000/api/users
JSON Web Token (JWT)
Matches JWT tokens (header.payload.signature).
/ey[A-Za-z0-9_-]+\.ey[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g Example: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Generic API Key
Loosely matches API keys (32–64 alphanumeric chars).
/\b[A-Za-z0-9_\-]{32,64}\b/g Example: sk_live_abcdefghijklmnopqrstuvwxyz123456
JS Single-line Comment
Matches single-line JavaScript/C-style comments.
/\/\/.*/g Example: // This is a comment
JS Multi-line Comment
Matches multi-line block comments /* ... */.
/\/\*[\s\S]*?\*\//g Example: /* This is a multi-line comment */
console.log() Call
Matches console.log, console.warn, console.error, etc. calls.
/console\.(?:log|warn|error|info|debug)\s*\([^)]*\)/g Example: console.log("hello") or console.error(err)
ES6 Import Statement
Matches ES6 import statements.
/import\s+(?:[\w{},\s*]+\s+from\s+)?['"][^'"]+['"]/g Example: import { useState } from 'react'
CommonJS require()
Matches Node.js require() statements.
/require\s*\(['"][^'"]+['"]\)/g Example: const fs = require('fs')
Email Username (local part)
Extracts the username (local part) from an email address.
/^[a-zA-Z0-9._%+\-]+(?=@)/ Example: user.name+tag@example.com → user.name+tag
Email Domain Part
Extracts the domain part from an email address (lookbehind).
/(?<=@)[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}/g Example: user@example.com → example.com
URL Path Segment
Matches individual path segments in a URL.
/(?<=\/)[a-zA-Z0-9\-._~!$&'()*+,;=:@%]+/g Example: https://example.com/api/v2/users → api, v2, users
Australian Phone Number
Matches Australian phone numbers including +61 prefix.
/(?:\+61|0)(?:\s?[2-9]\d){4}(?:\s?\d{4})/g Example: +61 2 1234 5678 or 02 1234 5678
Phone with Extension
Matches phone numbers with optional extensions.
/\(?\d{3}\)?[\s.\-]?\d{3}[\s.\-]?\d{4}(?:\s*(?:ext|x|#)\s*\d{1,6})?/gi Example: (555) 123-4567 ext 890
Month Name
Matches full or abbreviated month names.
/\b(?:January|February|March|April|May|June|July|August|September|October|November|December|Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/gi Example: March 15, 2024 or Mar 15
Day of Week
Matches full or abbreviated day names.
/\b(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\b/gi Example: Monday or Mon
Duration (HH:MM:SS)
Matches time duration in HH:MM:SS format.
/\b\d{1,2}:\d{2}:\d{2}\b/g Example: 01:30:00 (1.5 hours)
US ZIP Code
Matches US ZIP codes (5 digits or ZIP+4 format).
/\b\d{5}(?:-\d{4})?\b/g Example: 90210 or 90210-1234
UK Postcode
Matches UK postcodes in standard formats.
/[A-Z]{1,2}\d[A-Z\d]?\s?\d[A-Z]{2}/i Example: SW1A 1AA or M1 1AE
Roman Numeral
Matches Roman numerals (I to MMMM).
/\b(?:M{0,4}(?:CM|CD|D?C{0,3})(?:XC|XL|L?X{0,3})(?:IX|IV|V?I{0,3}))\b/gi Example: Chapter IV or XLII
Contains Uppercase Letter
Lookahead to check if a string contains at least one uppercase letter.
/(?=.*[A-Z])/ Example: Password123 ✓, password123 ✗
Contains Special Character
Lookahead to check for at least one special character.
/(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>/?])/ Example: Pass!word ✓, Password ✗
Code File Extension
Matches common source code file extensions.
/\.(js|ts|jsx|tsx|py|rb|php|java|cs|cpp|c|go|rs|swift|kt|vue|svelte|html|css|scss|sass|less)$/i Example: component.tsx, styles.scss
Hidden File (Unix)
Matches Unix hidden files (starting with a dot).
/(?:^|\/)\.(?!\.)([^\/]+)/g Example: .gitignore, .env, .htaccess
.env Variable
Matches environment variable declarations in .env files.
/^([A-Z_][A-Z0-9_]*)=(.*)$/gm Example: DATABASE_URL=postgres://localhost/mydb
Phone Number in Text
Loosely finds phone numbers mentioned in text with context.
/\b(?:call|phone|tel|fax|mobile|mob)?\s*:?\s*[+]?[\d\s()\-.]{7,20}/gi Example: Call us: 555-123-4567
camelCase Word
Matches camelCase identifiers.
/\b[a-z][a-zA-Z0-9]*[A-Z][a-zA-Z0-9]*\b/g Example: myVariable, getUserData
PascalCase Word
Matches PascalCase/UpperCamelCase words.
/\b[A-Z][a-z]+(?:[A-Z][a-z]+)+\b/g Example: MyComponent, UserProfile
snake_case Word
Matches snake_case identifiers.
/\b[a-z][a-z0-9]*(?:_[a-z0-9]+)+\b/g Example: my_variable, user_profile_id
kebab-case Word
Matches kebab-case identifiers used in CSS and URLs.
/\b[a-z][a-z0-9]*(?:-[a-z0-9]+)+\b/g Example: my-component, user-profile-id
IBAN (International Bank Account)
Matches IBAN bank account numbers.
/[A-Z]{2}\d{2}[A-Z0-9]{4}\d{7}(?:[A-Z0-9]?){0,16}/g Example: GB29NWBK60161331926819
SWIFT / BIC Code
Matches SWIFT/BIC bank identification codes.
/\b[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}(?:[A-Z0-9]{3})?\b/g Example: NWBKGB2L or DEUTDEDB
Stock Ticker Symbol
Matches stock ticker symbols prefixed with $.
/\$[A-Z]{1,5}\b/g Example: $AAPL, $TSLA, $MSFT
SSH Public Key
Matches SSH public keys.
/(?:ssh-rsa|ssh-ed25519|ecdsa-sha2-nistp256)\s+[A-Za-z0-9+/]+={0,2}(?:\s+\S+)?/g Example: ssh-rsa AAAAB3NzaC1yc2E... user@host
Git Commit SHA
Matches full (40-char) or abbreviated (7–8 char) Git commit SHAs.
/\b[0-9a-f]{40}\b|\b[0-9a-f]{7,8}\b/g Example: a3f1b2c or a3f1b2cdef1234567890abcdef12345678901234
Docker Image Tag
Matches Docker image references with optional tag.
/[a-z0-9]+(?:[._\-][a-z0-9]+)*(?:\/[a-z0-9]+(?:[._\-][a-z0-9]+)*)*(?::[a-zA-Z0-9._\-]+)?/g Example: nginx:latest or myrepo/myimage:1.2.3