Named Capture Groups
Named groups (?<name>...) make regex matches self-documenting and easier to work with. Access them via match.groups.
Named groups (?<name>...) make regex matches self-documenting and easier to work with. Access them via match.groups.
// 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"
Named groups in replacement strings use $
More in JavaScript