Sakke in die regulêre uitdrukking self in JavaScript
Die inhoud van sakke is nie net toeganklik in die vervangingsstring nie, maar ook in die regulêre uitdrukking self: ons kan iets in 'n sak plaas, en dan reguit in die regulêre uitdrukking sê dat die inhoud van daardie sak hier moet wees.
Die inhoud van sakke is toeganklik volgens hul nommers,
waarvoor 'n agteroorskuinsstreep staan. Byvoorbeeld,
die eerste sak sal so toeganklik wees: \1,
die tweede sak so - \2, die derde
- \3 en so aan.
Ek is seker dat alles hierbo geskryf vir jou nogal vaag is. Dit is nie verbasend nie, aangesien sakke die mees onverstaanbare plek van regulêre uitdrukkings is. Kom ons verduidelik dit met voorbeelde.
Voorbeeld
Gestel ons het die volgende string:
let str = 'aa bb cd ef';
Kom ons vind daarin alle plekke waar twee identiese letters agtermekaar staan. Om die probleem op te los, sal ons enige letter soek, dit in 'n sak plaas, en dan nagaan of die volgende simbool die inhoud van daardie sak is:
let res = str.replace(/([a-z])\1/g, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word:
'! ! cd ef'
Voorbeeld
Gestel ons het die volgende string:
let str = 'asxca buzxb csgd';
Kom ons vind daarin alle woorde waarvan die eerste en laaste letters identies is. Om die probleem op te los, skryf ons die volgende patroon: letter, dan nog een of meer letters, en dan dieselfde letter as die eerste:
let res = str.replace(/([a-z])[a-z]+\1/g, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word:
'! ! csgd'
Praktiese take
Gegee 'n string:
let str = 'aaa bbb ccc xyz';
Vind alle substringe waarin daar drie identiese letters agtermekaar is.
Gegee 'n string:
let str = 'a aa aaa aaaa aaaaa';
Vind alle substringe waarin daar twee of meer identiese letters agtermekaar is.
Gegee 'n string:
let str = 'aaa aaa bbb bbb ccc ddd';
Vind alle substringe waarin daar twee identiese woorde agtermekaar is.