SyntaxStudy
Sign Up
JavaScript Intermediate 5 min read

Named Capture Groups

Named Capture Groups

Named groups (?<name>...) make regex matches self-documenting and easier to work with. Access them via match.groups.

Example
// Parse a log line
const log = "2024-06-15 10:30:00 [ERROR] Connection refused";
const regex = /(?<date>\d{4}-\d{2}-\d{2}) (?<time>\d{2}:\d{2}:\d{2}) \[(?<level>\w+)\] (?<message>.+)/;
const { groups } = log.match(regex);

console.log(groups.date);    // "2024-06-15"
console.log(groups.level);   // "ERROR"
console.log(groups.message); // "Connection refused"

// Use named groups in replacement
"2024-06-15".replace(/(?<y>\d{4})-(?<m>\d{2})-(?<d>\d{2})/, "$<d>/$<m>/$<y>");
// "15/06/2024"
Pro Tip

Named groups in replacement strings use $ syntax — much clearer than numbered $1, $2 references.