Množiny znakov v regulárnych výrazoch JavaScript

Skupiny znakov \d a \w nie sú veľmi flexibilné. Dokonca aj taká jednoduchá úloha, ako nájsť všetky písmená, ale nie čísla - nemôže byť vyriešená nimi. Pre takéto úlohy by sa mali použiť hranaté zátvorky, ktoré predstavujú operáciu 'alebo'.

Hranaté zátvorky nahrádzajú jeden znak, akýkoľvek z uvedených vo vnútri. Napríklad, takto: /x[abc]x/ - hovoríme, že na okrajoch musia byť písmená x, a vo vnútri - jeden znak: alebo 'a', alebo 'b', alebo 'c'.

Za hranatými zátvorkami je možné písať operátory opakovania. Napríklad, takto: /x[abc]+x/ - hovoríme, že medzi x môže byť ľubovoľný počet znakov 'a', 'b' a 'c' - v ľubovoľných kombináciách.

Je možné nielen vymenovať znaky, ale vytvoriť skupiny znakov, zapísaním medzi dvoma znakmi pomlčku. Napríklad, takto: [a-d] - dostaneme všetky znaky od 'a' do 'd'.

Pozrime sa na príklady.

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z':

javascriptlet str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'! ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'k':

javascriptlet str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'! ! xmx x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'A' do 'Z':

javascriptlet str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'xax ! xcx x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľná číslica od 0 do 9:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'xax ! ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľná číslica od 3 do 7:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'xax x1x ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z' alebo číslica od 1 do 9:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'! ! ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z' alebo písmeno od 'A' do 'Z':

javascriptlet str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'! ! ! x5x x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z' alebo číslice 1, 2:

javascriptlet str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'! ! ! ! x3x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x písmená od 'a' do 'z' v množstve od 1 a viac:

javascriptlet str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'xx ! ! ! x123x xa3x'

Príklad

Urobme to tak, aby počet písmen mohol byť aj nula:

javascriptlet str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');

Výsledne sa do premennej zapíše nasledovné:

javascript'! ! ! ! x123x xa3x'

Praktické úlohy

Задание 1

Daný reťazec:

javascriptlet str = 'aba aea aca aza axa';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno 'b', 'e' alebo 'x'.

Задание 2

Daný reťazec:

javascriptlet str = 'a1a a3a a7a a9a aba';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - číslica od 3-ich do 6-tych.

Задание 3

Daný reťazec:

javascriptlet str = 'aba aea afa aha aga';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno od a do g.

Задание 4

Daný reťazec:

javascriptlet str = 'aba aea afa aha aga';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno od a do f a od j do z.

Задание 5

Daný reťazec:

javascriptlet str = 'aAa aea aEa aJa a3a';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno od a do f a od A do D.

Задание 6

Daný reťazec:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - malé latinské písmená, bez ovplyvnenia ostatných.

Задание 7

Daný reťazec:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - malé a veľké latinské písmená, bez ovplyvnenia ostatných.

Задание 8

Daný reťazec:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Napíšte regulárny výraz, ktorý nájde podľa nasledujúceho vzoru: na okrajoch stoja písmená 'a', a medzi nimi - malé latinské písmená a číslice, bez ovplyvnenia ostatných.