* fix: restructure certifications guide articles * fix: added 3 dashes line before prob expl * fix: added 3 dashes line before hints * fix: added 3 dashes line before solutions
1.3 KiB
1.3 KiB
title
| title |
|---|
| Reuse Patterns Using Capture Groups |
Reuse Patterns Using Capture Group
Hints
Hint 1
Given code below:
let testString = "test test test";
let reRegex = /(test)\s\1/;
let result = reRegex.test(testString);
result will match only test test because \1 in this example stands for the same text as most recently matched by the 1st capturing group (test).
If we were to literally translate the regex, it would look something like this:
let re = /(test)\s\1/;
let literalRe = /test\stest/;
Both re and literalRe would match the same thing.
Hint 2
Given the code below:
let testString = "test test test";
let reRegex = /(test)(\s)\1\2\1/;
let result = reRegex.test(testString);
result will match whole test test test because:
\1 repeats (test)
\2 repeats (\s)
Hint 3
The code below:
let testString = "test test test test test test";
let reRegex = /(test)(\s)\1\2\1/g;
let result = reRegex.test(testString);
because we used \g, our Regex doesn't return after first full match (test test test) and matched all repetitions.
Solutions
Solution 1 (Click to Show/Hide)
let repeatNum = "42 42 42";
let reRegex = /^(\d+)\s\1\s\1$/;
let result = reRegex.test(repeatNum);