Multiriga nelle espressioni regolari JavaScript
Le espressioni regolari quando lavorano con stringhe multiriga hanno le loro peculiarità. Analizziamole con l'esempio della seguente stringa, che contiene caratteri ordinari, caratteri di nuova riga e tabulazioni:
let str = `111
222
333
444`;
Nuova riga
I caratteri di nuova riga possono
essere catturati con il comando '\n':
let res = str.replace(/\n/g, '!');
Di conseguenza, nella variabile verrà scritto quanto segue (gli spazi tra le righe sono tabulazioni):
`111! 222! 333! 444`;
Tabulazione
I caratteri di tabulazione possono
essere catturati con il comando '\t':
let res = str.replace(/\t/g, '!');
Di conseguenza, nella variabile verrà scritto quanto segue:
`
111
!222
!333
!444
`;
Comportamento del punto
Il comando '.' per una stringa
multiriga non cattura i caratteri di nuova riga:
let res = str.replace(/./g, '!');
Di conseguenza, nella variabile verrà scritto quanto segue:
`
!!!
!!!!
!!!!
!!!!
`;
Qualsiasi carattere
Per catturare tutti i caratteri in una stringa
multiriga, si usa un trucco sotto forma di
combinazione [\s\S]. Questa costruzione troverà
tutti i caratteri ordinari e tutti i caratteri di nuova riga:
let res = str.replace(/[\s\S]/g, '!');
Di conseguenza, nella variabile verrà scritto quanto segue:
`!!!!!!!!!!!!!!!!!!`;
Accento circonflesso (^)
Con il modificatore 'm'
è possibile attivare la modalità multiriga.
In questo caso, l'accento circonflesso catturerà
l'inizio di ogni riga:
let res = str.replace(/^/gm, '!');
Di conseguenza, nella variabile verrà scritto quanto segue:
`
!111
!222
!333
!444
`;
Dollaro ($)
Il comando '$' in modalità multiriga
catturerà la fine di ogni riga:
let res = str.replace(/$/gm, '!');
Di conseguenza, nella variabile verrà scritto quanto segue:
`
111!
222!
333!
444!
`;
Problemi pratici
Data la stringa:
`
abc
def
ghi
jkl
`;
Scrivi un'espressione regolare che trasformerà questa stringa nella seguente:
`
abc!
def!
ghi!
jkl!
`;
Data la stringa:
`
abc
def
ghi
jkl
`;
Scrivi un'espressione regolare che trasformerà questa stringa nella seguente:
`
! abc
! def
! ghi
! jkl
`;
Data la stringa:
`
abc
def
ghi
jkl
`;
Scrivi un'espressione regolare che trasformerà questa stringa nella seguente:
`!
abc
def
ghi
jkl
!`;
Data la stringa:
`
abc
def
ghi
jkl
`;
Scrivi un'espressione regolare che trasformerà questa stringa nella seguente:
`!
! abc
! def
! ghi
! jkl
!`;
Data la stringa:
`
abc
def
ghi
jkl
`;
Scrivi un'espressione regolare che trasformerà questa stringa nella seguente:
`!
abc!
def!
ghi!
jkl!
!`;
Data la stringa:
`
abc
def
ghi
jkl
`;
Scrivi un'espressione regolare che trasformerà questa stringa nella seguente:
`
!abc
!def
!ghi
!jkl
`;