Brūkšnelis rinkiniuose „JavaScript“ reguliariosiose išraiškose
Brūkšnelis - taip pat specialusis simbolis [ ] viduje
(tačiau išorėje - ne). Jei jums reikia paties
brūkšnelio kaip simbolio - padėkite jį ten,
kur jis nebus suprastas kaip grupės skirtukas.
Kodėl tai svarbu: jūs galite sukurti simbolių
grupę, to nepastebėdami. Pavyzdžiui,
štai taip - '[:-@]' - jūs manote, kad
renkatės dvitaškį, brūkšnelį ir etaženklį, tačiau
iš tikrųjų pasirodo simbolių grupė tarp
: ir @. Į šią grupę įeina
šie simboliai: ? < = > : ;
Iš kur jie atsirado? Iš ASCII lentelės - dvitaškis turi mažesnį numerį nei etaženklis - ir susidaro grupė. Tai yra, visos grupės susidaro pagal ASCII lentelę (jei norima, tuo galima naudotis).
Kaip su tuo kovoti: padėkite brūkšnelio simbolį
ten, kur jis tikrai nebus suprastas kaip
grupės simbolis, pavyzdžiui, pradžioje arba pabaigoje
(tai yra po [ arba prieš ]).
Taip pat galima ekranuoti brūkšnelį - tada
jis reikš patį save, nepaisant
padėties. Pavyzdžiui, vietoj [:-@] parašyti
[:\-@] - ir grupės jau nebus, o
bus trys simboliai - dvitaškis, brūkšnelis ir etaženklis
@.
Pavyzdys
Šiame pavyzdyje paieškos šablonas toks:
skaitmuo 1, tada raidė nuo 'a'
iki 'z', tada skaitmuo 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a-z]2/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! 1-2 ! !'
Pavyzdys
Dabar ekranuokime brūkšnelį. Rezultate
paieškos šablonas toks: skaitmuo 1, tada
raidė 'a', arba brūkšnelis, arba raidė 'z',
tada skaitmuo 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a\-z]2/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! 1c2 !'
Pavyzdys
Galima tiesiog perstatyti brūkšnelį, jo neekranuojant:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[az-]2/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! 1c2 !'
Pavyzdys
Šiame pavyzdyje paieškos šablonas toks:
pirmasis simbolis - tai mažosios raidės arba
brūkšnelis '-', po to dvi raidės 'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-z-]xx/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! Axx ! @xx'
Pavyzdys
Šiame pavyzdyje paieškos šablonas toks:
pirmasis simbolis - tai mažosios, didžiosios
raidės arba brūkšnelis '-', po to dvi raidės
'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-zA-Z-]xx/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! ! @xx'
Pavyzdys
Galima brūkšnelį patalpinti tarp dviejų grupių - ten jis tikrai nesukurs dar vienos grupės:
let str = 'axx 9xx -xx @xx';
let res = str.replace(/[a-z-0-9]xx/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! ! @xx'
Praktinės užduotys
Duota eilutė:
let str = 'xaz xBz xcz x-z x@z';
Raskite visas eilutes pagal šį šabloną:
raidė 'x', didžioji arba mažoji
raidė arba brūkšnelis, raidė 'z'.
Duota eilutė:
let str = 'xaz x$z x-z xcz x+z x%z x*z';
Raskite visas eilutes pagal šį šabloną:
raidė 'x', tada arba dolerio ženklas, arba
brūkšnelis arba pliusas, po to raidė 'z'.