catching with a name attached
Matches catching with a name attached. It is anchored at both ends, so the whole string has to match. There are 2 capture groups.
Pattern
/^(?<year>\d{4})-(?<month>\d{2})$/- Match scope
- the whole string
- Capture groups
- 2 · year, month
- What it catches in the first example
- 2024-07
Try it yourself
Type any text and the parts this expression catches are highlighted. It runs in your browser and is never sent anywhere.
2024-07
1 match
Examples that match
- 2024-07
Examples that do not match
- 2024-7
- 24-07
Other expressions in this group
^(?:cat|dog)$either one of two words^(?:ab)+$a two-letter group, repeated^(\d{3})-(\d{4})$two parts caught separately^(?:\d{3}-)+\d{4}$grouping without catching(\w)\1the same character twice in a row\b(\w+)\s+\1\bthe same word typed twice^(?:https?://)?example\.com$an address with or without the scheme^(?:\d{1,3}\.){3}\d{1,3}$an address made of four partsHow to read this
- With ^ and $ around it, the whole string must match; without them the match can sit anywhere. Always anchor an expression you use for validation.
- Round brackets ( ) capture what they wrap. When you only need grouping, write (?: ) so the numbering of later groups does not shift.
- Every expression here is checked against its examples. Even so, "looks like an email" and "is a real inbox" remain different questions.
- Nested open-ended repeats such as (a+)+ can blow up on certain inputs. Look for that shape before pasting someone else’s expression into your code.
Frequently asked questions
Q. What is the regex for catching with a name attached?
^(?<year>\d{4})-(?<month>\d{2})$.
Q. Which strings match?
Text like 2024-07 matches; text like 2024-7 does not.
Q. Does the whole string have to match?
Yes. It is wrapped in ^ and $, so nothing but a full match passes.
Q. How do I use what it caught?
There are 2 capture groups, so you can read them from match[1] onwards.