| 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 |
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.

| 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 |
Page URL: http://regular-expressions.mobi/comments.html
Page last updated: 21 April 2010
Site last updated: 03 September 2010
Copyright © 2003-2010 Jan Goyvaerts. All rights reserved.