Inverze množin znaků v regulárních výrazech
Pomocí stříšky '^' na začátku hranatých
závorek lze invertovat požadovaný výraz. To znamená,
že pokud například příkaz [ab] hledá
písmeno 'a' nebo 'b', pak příkaz
[^ab] bude hledat všechny znaky kromě
'a' a 'b'.
Příklad
V tomto příkladu vypadá vyhledávací vzor takto:
písmeno 'x', poté NE písmeno 'a',
ne 'b' a ne 'c', pak písmeno
'z':
let str = 'xaz xbz xcz xez';
let res = str.replace(/x[^abc]z/g, '!');
Výsledek zapsaný do proměnné bude následující:
'xax xbx xcx !'
Příklad
V tomto příkladu vypadá vyhledávací vzor takto:
písmeno 'x', poté NE malé latinské
písmeno, pak písmeno 'z':
let str = 'xaz xbz x1z xCz';
let res = str.replace(/x[^a-z]z/g, '!');
Výsledek zapsaný do proměnné bude následující:
'xaz xbz ! !'
Praktické úlohy
Napište regulární výraz, který najde řetězce
podle vzoru: číslice '1', poté znak
ne 'e' a ne 'x', číslice '2'.
Napište regulární výraz, který najde řetězce
podle vzoru: písmeno 'x', poté NE
číslice od 2 do 7, písmeno 'z'.
Napište regulární výraz, který najde řetězce
podle vzoru: písmeno 'x', poté NE
velké latinské písmeno od 1 a více
krát, písmeno 'z'.
Napište regulární výraz, který najde řetězce
podle vzoru: písmeno 'x', poté NE
velké nebo malé latinské písmeno a ne číslice
od 1 do 5 od 1 a více
krát, písmeno 'z'.