Adding Comments to Regular Expressions

Tutorial | Tools & Languages | Examples | Books & Reference |

Introduction | Table of Contents | Characters | Regex Engine Internals | Character Classes | Dot | Anchors | Word Boundaries | Alternation | Optional Items | Repetition | Grouping & Backreferences | Named Groups | Unicode | Modifiers | Possessive Quantifiers | Atomic Grouping | Lookahead & Lookbehind | Lookaround, part 2 | Continuing Matches | Conditionals | XML Character Classes | POSIX Bracket Expressions | Comments | Free-Spacing |

RegexBuddy Get RegexBuddy to create and edit regex patterns with RegexBuddy's easy-to-grasp regex blocks and intuitive regex tree, instead of or in combination with the traditional regex syntax.

If you have worked through the entire tutorial, I guess you will agree that regular expressions can quickly become rather cryptic. Therefore, many modern regex flavors allow you to insert comments into regexes. The syntax is (?#comment) where "comment" can be whatever you want, as long as it does not contain a closing round bracket. The regex engine ignores everything after the (?# until the first closing round bracket.

E.g. I could clarify the regex to match a valid date by writing it as (?#year)(19|20)\d\d[- /.](?#month)(0[1-9]|1[012])[- /.](?#day)(0[1-9]|[12][0-9]|3[01]) . Now it is instantly obvious that this regex matches a date in yyyy-mm-dd format. Some software, such as RegexBuddy, EditPad Pro and PowerGREP can apply syntax coloring to regular expressions while you write them. That makes the comments really stand out, enabling the right comment in the right spot to make a complex regular expression much easier to understand.

Regex comments are supported by the JGsoft engine, .NET, Perl, PCRE, Python and Ruby.

To make your regular expression even more readable, you can turn on free-spacing mode. All flavors that support comments also support free-spacing mode. In addition, Java supports free-spacing mode, even though it doesn't support (?#)-style comments.

RegexBuddy makes regular expressions more readable with syntax coloring

RegexBuddy Get RegexBuddy to create and edit regex patterns with RegexBuddy's easy-to-grasp regex blocks and intuitive regex tree, instead of or in combination with the traditional regex syntax.

Tutorial | Tools & Languages | Examples | Books & Reference |

Introduction | Table of Contents | Characters | Regex Engine Internals | Character Classes | Dot | Anchors | Word Boundaries | Alternation | Optional Items | Repetition | Grouping & Backreferences | Named Groups | Unicode | Modifiers | Possessive Quantifiers | Atomic Grouping | Lookahead & Lookbehind | Lookaround, part 2 | Continuing Matches | Conditionals | XML Character Classes | POSIX Bracket Expressions | Comments | Free-Spacing |