Zestawy znaków w wyrażeniach regularnych JavaScript
Grupy znaków \d i \w nie
są zbyt elastyczne. Nawet tak proste zadanie,
jak znaleźć wszystkie litery, ale nie cyfry -
nie może być przez nie rozwiązane. Do takich zadań
należy używać nawiasów kwadratowych, reprezentujących
operator 'lub'.
Nawiasy kwadratowe zastępują jeden znak,
dowolny z wymienionych wewnątrz. Na przykład,
w ten sposób: /x[abc]x/ - mówimy, że
na brzegach muszą stać litery iks, a w środku
- jeden znak: lub 'a', lub 'b',
lub 'c'.
Po nawiasach kwadratowych można pisać operatory
powtórzenia. Na przykład, w ten sposób: /x[abc]+x/
- mówimy, że wewnątrz iksów może być
dowolna liczba znaków 'a', 'b'
i 'c' - w dowolnych kombinacjach.
Można nie tylko wymieniać znaki, ale tworzyć
grupy znaków, zapisując między dwoma znakami
myślnik. Na przykład, w ten sposób: [a-d] -
otrzymujemy wszystkie znaki od 'a' do
'd'.
Spójrzmy na przykłady.
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna litera od 'a'
do 'z':
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'! ! ! x@x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna litera od 'a'
do 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'! ! xmx x@x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna litera od 'A'
do 'Z':
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'xax ! xcx x@x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna cyfra od 0 do 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'xax ! ! ! x@x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna cyfra od 3 do 7:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'xax x1x ! ! x@x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna litera od 'a'
do 'z' lub cyfra od 1 do 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'! ! ! ! x@x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna litera od 'a'
do 'z' lub litera od 'A' do
'Z':
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'! ! ! x5x x@x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami dowolna litera od 'a'
do 'z' lub cyfry 1, 2:
let str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'! ! ! ! x3x'
Przykład
W tym przykładzie wzorzec wyszukiwania wygląda tak:
pomiędzy iksami litery od 'a' do 'z'
w liczbie od 1 i więcej:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'xx ! ! ! x123x xa3x'
Przykład
Sprawmy, aby liczba liter mogła być i zero:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
W wyniku do zmiennej zapisze się następująco:
'! ! ! ! x123x xa3x'
Zadania praktyczne
Dany jest ciąg:
let str = 'aba aea aca aza axa';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - litera 'b', 'e'
lub 'x'.
Dany jest ciąg:
let str = 'a1a a3a a7a a9a aba';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - cyfra od 3-ch do 6-ci.
Dany jest ciąg:
let str = 'aba aea afa aha aga';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - litera od a do g.
Dany jest ciąg:
let str = 'aba aea afa aha aga';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - litera od a do f i od j do z.
Dany jest ciąg:
let str = 'aAa aea aEa aJa a3a';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - litera od a do f i od A do D.
Dany jest ciąg:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - małe litery łacińskie,
nie dotykając pozostałych.
Dany jest ciąg:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - małe i duże litery łacińskie, nie dotykając pozostałych.
Dany jest ciąg:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Napisz wyrażenie regularne, które znajdzie według następującego
wzorca: na brzegach stoją litery 'a',
a między nimi - małe litery łacińskie
i cyfry, nie dotykając pozostałych.