Többsoros mintaillesztés a JavaScript reguláris kifejezéseiben
A reguláris kifejezéseknek vannak sajátosságaik, amikor többsoros sztringekkel dolgoznak. Nézzük meg ezeket a következő sztring példáján, amely közönséges karaktereket, sortörés és tabulátor karaktereket tartalmaz:
let str = `111
222
333
444`;
Sortörés
A sortörés karaktereket elkaphatjuk
a '\n' parancs segítségével:
let res = str.replace(/\n/g, '!');
Ennek eredményeképpen a változóba a következő íródik (a sorok közötti részek tabulátorok):
`111! 222! 333! 444`;
Tabulátor
A tabulátor karaktereket elkaphatjuk
a '\t' parancs segítségével:
let res = str.replace(/\t/g, '!');
Ennek eredményeképpen a változóba a következő íródik:
`
111
!222
!333
!444
`;
A pont működése
A '.' parancs többsoros sztring
esetén nem kapja el a sortörés karaktereket:
let res = str.replace(/./g, '!');
Ennek eredményeképpen a változóba a következő íródik:
`
!!!
!!!!
!!!!
!!!!
`;
Bármely karakter
Ahhoz, hogy egy többsoros sztringben minden
karaktert elkapjunk, egy trükkös megoldást
használunk: a [\s\S] kombinációt. Ez a konstrukció
mindennemű karaktert és sortörést is talál:
let res = str.replace(/[\s\S]/g, '!');
Ennek eredményeképpen a változóba a következő íródik:
`!!!!!!!!!!!!!!!!!!`;
Kalap
A 'm' módosító segítségével
bekapcsolhatjuk a többsoros módot.
Ebben az esetben a kalap karakter minden
sor elejét fogja megtalálni:
let res = str.replace(/^/gm, '!');
Ennek eredményeképpen a változóba a következő íródik:
`
!111
!222
!333
!444
`;
Dollár
A '
parancs többsoros módban
minden sor végét fogja megtalálni:
let res = str.replace(/$/gm, '!');
Ennek eredményeképpen a változóba a következő íródik:
`
111!
222!
333!
444!
`;
Gyakorlati feladatok
Adott a következő sztring:
`
abc
def
ghi
jkl
`;
Írj reguláris kifejezést, amely ebből a sztringből a következőt készíti:
`
abc!
def!
ghi!
jkl!
`;
Adott a következő sztring:
`
abc
def
ghi
jkl
`;
Írj reguláris kifejezést, amely ebből a sztringből a következőt készíti:
`
! abc
! def
! ghi
! jkl
`;
Adott a következő sztring:
`
abc
def
ghi
jkl
`;
Írj reguláris kifejezést, amely ebből a sztringből a következőt készíti:
`!
abc
def
ghi
jkl
!`;
Adott a következő sztring:
`
abc
def
ghi
jkl
`;
Írj reguláris kifejezést, amely ebből a sztringből a következőt készíti:
`!
! abc
! def
! ghi
! jkl
!`;
Adott a következő sztring:
`
abc
def
ghi
jkl
`;
Írj reguláris kifejezést, amely ebből a sztringből a következőt készíti:
`!
abc!
def!
ghi!
jkl!
!`;
Adott a következő sztring:
`
abc
def
ghi
jkl
`;
Írj reguláris kifejezést, amely ebből a sztringből a következőt készíti:
`
!abc
!def
!ghi
!jkl
`;