Krulhakies in JavaScript se gereelde uitdrukkings
Die operateurs '+', '*', '?'
is goed, maar dit is nie moontlik om 'n
spesifieke aantal herhalings aan te dui met hulle nie. In hierdie geval
kom die operateur {} jou te hulp.
Dit werk soos volg: {5}
- vyf herhalings, {2,5} – herhaal
van twee tot vyf (albei ingesluit), {2,}
- herhaal twee keer of meer. Let op
dat so 'n weergawe - {,2}
- nie bestaan nie. Kyk na die voorbeelde:
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'x', letter 'a' een
of twee keer, letter 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
As gevolg hiervan sal die volgende in die veranderlike geskryf word:
'xx ! ! xaaax'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'x', letter 'a' twee
keer of meer, letter 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
As gevolg hiervan sal die volgende in die veranderlike geskryf word:
'xx xax ! !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'x', letter 'a' drie
keer, letter 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
As gevolg hiervan sal die volgende in die veranderlike geskryf word:
'xx xax xaax !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'a' tien keer:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
As gevolg hiervan sal die volgende in die veranderlike geskryf word:
'aaa ! aaa'
Voorbeeld
In hierdie voorbeeld wou die skrywer van die kode so 'n patroon hê:
letter 'x', letter 'a' drie
keer of minder, letter 'x',
maar ongelukkig werk dit - {,3} - nie.
Dit moet eksplisiet aangedui word:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
As gevolg hiervan sal die volgende in die veranderlike geskryf word:
'xx ! ! !'
Voorbeeld
Nul is ook toegelaat:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
As gevolg hiervan sal die volgende in die veranderlike geskryf word:
'! ! ! !'
Praktiese take
Gegee 'n string:
let str = 'aa aba abba abbba abbbba abbbbba';
Skryf 'n gereelde uitdrukking wat die snare sal vind
'abba', 'abbba', 'abbbba'
en slegs hulle.
Gegee 'n string:
let str = 'aa aba abba abbba abbbba abbbbba';
Skryf 'n gereelde uitdrukking wat die snare sal vind
van die tipe 'aba', waarin 'b' voorkom
minder as 3 keer (ingesluit).
Gegee 'n string:
let str = 'aa aba abba abbba abbbba abbbbba';
Skryf 'n gereelde uitdrukking wat die snare sal vind
van die tipe 'aba', waarin 'b' voorkom
meer as 4 keer (ingesluit).