Curly braces in regular expressions in JavaScript
The '+', '*', '?' operators
are nice, but they cannot be used to specify a
certain number of repetitions. In this case,
the operator {} will come to your aid.
It works as follows: {5} - five repetitions,
{2,5} - repeats from two to five times (both
inclusive), {2,} - repeats two or more times.
Please note that there is no such option - {,2}.
See examples:
Example
In this example, the search pattern looks like this:
letter 'x', letter 'a' once or twice,
letter 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
As a result, the following will be written to the variable:
'xx ! ! xaaax'
Example
In this example, the search pattern looks like
this: letter 'x', letter 'a'
two or more times, letter 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
As a result, the following will be written to the variable:
'xx xax ! !'
Example
In this example, the search pattern looks like
this: letter 'x', letter 'a'
three times, letter 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
As a result, the following will be written to the variable:
'xx xax xaax !'
Example
In this example, the search pattern looks like
this: letter 'a' ten times:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
As a result, the following will be written to the variable:
'aaa ! aaa'
Example
In this example, the code author wanted this pattern:
letter 'x', letter 'a' three times or
less, letter 'x', but, unfortunately,
this - {,3} - does not work. It must be specified
explicitly:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
As a result, the following will be written to the variable:
'xx ! ! !'
Example
Zero is also allowed:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
As a result, the following will be written to the variable:
'! ! ! !'
Practical tasks
Given a string:
let str = 'aa aba abba abbba abbbba abbbbba';
Write a regex that matches only
the strings 'abba', 'abbba',
'abbbba'.
Given a string:
let str = 'aa aba abba abbba abbbba abbbbba';
Write a regex that matches the strings
like 'aba' where 'b' occurs less than
3 times (inclusive).
Given a string:
let str = 'aa aba abba abbba abbbba abbbbba';
Write a regex that matches the strings
like 'aba' where 'b' occurs more than
4 times (inclusive).