Komanda 'ose' në shprehjet e rregullta JavaScript

Në këtë mësim do të analizojmë komandën '|', e cila përfaqëson një variant më të fuqishëm të 'ose' në krahasim me komandën [ ]. Kjo komandë lejon ndarjen e regex në disa pjesë. Në këtë rast, ajo që kërkohet mund të përshtatet ose në një pjesë të regex, ose në një tjetër. Le të shohim me shembuj.

Shembull

Në këtë shembull, modeli i kërkimit është: tri shkronja 'a' ose tri shkronja 'b':

javascriptlet str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

javascript'! ! abb'

Shembull

Në këtë shembull, modeli i kërkimit është: tri shkronja 'a' ose nga 1 e më shumë shkronja 'b':

javascriptlet str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

javascript'! ! ! ! axx'

Shembull

Në këtë shembull, modeli i kërkimit është: një ose më shumë shkronja ose tre shifra:

javascriptlet str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

javascript'! ! ! 1 12 !'

Shembull

Vija vertikale mund ta ndajë regex jo në dy pjesë, por në çdo numër pjesësh:

javascriptlet str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

javascript'! ! ! ddd'

Shembull

Nëse vija vertikale qëndron brenda kllapave të rrumbullakëta, atëherë 'ose' punon vetëm brenda atyre kllapave.

Si shembull, le të gjejmë stringjet sipas modelit vijues: në fillim qëndron ose 'a', ose 'b' një ose më shumë herë, e më pas dy shkronja 'x':

javascriptlet str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

javascript'! ! ! exx'

Detyra praktike

Задание 1

Është dhënë stringu:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Shkruani një regex, e cila do të gjejë stringjet sipas modelit: në anët qëndrojnë shkronjat 'a', ndërsa midis tyre - ose shkronja 'e' çdo numër herësh ose shkronja 'x' çdo numër herësh.

Задание 2

Është dhënë stringu:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Shkruani një regex, e cila do të gjejë stringjet sipas modelit: në anët qëndrojnë shkronjat 'a', ndërsa midis tyre - ose shkronja 'e' dy herë ose shkronja 'x' çdo numër herësh.