Regex Tester
Test and debug regular expressions with real-time matching, highlighting, and capture group display. All processing happens in your browser.
| # | Match | Index | Length | Groups |
|---|---|---|---|---|
| No matches yet. Enter a pattern and test string above. | ||||
About Regex Tester
Regular expressions (regex) are sequences of characters that define search patterns. They are one of the most powerful tools in a developer's toolkit, used for string matching, validation, search-and-replace operations, and data extraction. Our Regex Tester lets you write, test, and debug regular expressions in real time directly in your browser. As you type your pattern and test string, matches are instantly highlighted and detailed information about each match, including capture groups and positions, is displayed below.
Common Regex Patterns
Here are some frequently used patterns you can test with this tool:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}— Matches most email addresses.https?:\/\/[^\s]+— Matches URLs starting with http or https.\b\d{1,3}(\.\d{1,3}){3}\b— Matches IPv4 addresses like 192.168.1.1.\d{4}-\d{2}-\d{2}— Matches dates in YYYY-MM-DD format.#?[a-fA-F0-9]{6}— Matches 6-digit hex color codes like #FF5733.
Regex Flags Explained
Flags modify how a regex engine interprets your pattern:
- g (Global) — Finds all matches in the string instead of stopping after the first one.
- i (Case-insensitive) — Makes the pattern match uppercase and lowercase letters interchangeably.
- m (Multiline) — Changes
^and$to match the start and end of each line, not just the entire string. - s (Dotall) — Makes the
.character match newline characters as well. - u (Unicode) — Enables full Unicode matching, correctly handling surrogate pairs and Unicode property escapes.
- y (Sticky) — Matches only from the position indicated by the
lastIndexproperty of the regex.
What Are Capture Groups?
Capture groups are portions of a pattern enclosed in parentheses ( ). When a match is found, each group captures the substring it matched, which you can reference later for replacement or extraction. For example, the pattern (\d{4})-(\d{2})-(\d{2}) has three groups that separately capture the year, month, and day from a date string.
FAQ
Q: What are regex flags and when should I use them?
Flags are optional parameters that change how the regex engine behaves. The most commonly used flag is g (global), which finds all matches rather than just the first. Use i when you want case-insensitive matching, and m when your test string has multiple lines and you want ^/$ to anchor to line boundaries.
Q: How do I match email addresses with regex?
A common pattern is [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}. This covers most standard email formats. Keep in mind that the official email specification (RFC 5322) is extremely permissive, and no simple regex can match every valid address perfectly.
Q: What are capture groups and how do they work?
Capture groups are created by wrapping part of your pattern in parentheses. They let you extract specific pieces of a match. For instance, in (\w+)@(\w+)\.(\w+), group 1 captures the username, group 2 the domain name, and group 3 the top-level domain. You can see all captured groups in the Match Details table.
Q: Is regex the same across all programming languages?
The core syntax is very similar, but each language has its own regex engine with slight differences in supported features. This tool uses JavaScript's built-in RegExp engine. Most patterns will work identically in languages like Python, Java, and PHP, but advanced features like lookbehind assertions or Unicode property escapes may vary.
Q: Is my data safe when using this tool?
Yes. All regex processing happens entirely in your browser using JavaScript. No data is transmitted to any server. You can verify this by disconnecting from the internet and confirming the tool still works normally.