JavaScriptтегин регулярдуу сөз айкаштарындагы символдор топтому
Символдор тобу \d жана \w
өтө ийкемдүү эмес. Үстөмдүк кылуу сыяктуу жөнөкөй милдет,
мисалы, бардык тамгаларды тап, бирок сандарды эмес -
алар тарабынан чечиле албайт. Мындай милдеттер үчүн
квадраттык кашааларды колдонуу керек, алар
'же' амалын билдирет.
Квадраттык кашаалар бир символду алмаштырат,
анын ичиндегилердин кайсынысы болбосун. Мисалы,
мындай: /x[abc]x/ - биз мындай дейбиз:
четтеринде икс тамгалары турсун, ал эми ичинде
- бир символ: же 'a', же 'b',
же 'c'.
Квадраттык кашаалардан кийин кайталоо операторлорун
жаза аласыз. Мисалы, мындай: /x[abc]+x/
- биз мындай дейбиз: икстердин ортосунда
'a', 'b'
жана 'c' символдорунун каалаган саны болушу мүмкүн - каалаган айкалышта.
Символдорду гана тизмелеп эмес, ошондой эле түзсө болот
символдор тобун, эки символдун ортосуна
дефис жазып. Мисалы, мындай: [a-d] -
биз 'a' дан
'd' ге чейинки бардык символдорду алабыз.
Келгиле, мисалдарды карап көрөлү.
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 'a'
дан 'z' ге чейинки каалаган тамга:
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'! ! ! x@x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 'a'
дан 'k' ге чейинки каалаган тамга:
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'! ! xmx x@x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 'A'
дан 'Z' ге чейинки каалаган тамга:
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'xax ! xcx x@x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 0 дан 9га чейинки каалаган сан:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'xax ! ! ! x@x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 3 тен 7 ге чейинки каалаган сан:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'xax x1x ! ! x@x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 'a'
дан 'z' ге чейинки каалаган тамга же 1 дан 9га чейинки сан:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'! ! ! ! x@x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 'a'
дан 'z' ге чейинки каалаган тамга же 'A' дан
'Z' ге чейинки тамга:
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'! ! ! x5x x@x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 'a'
дан 'z' ге чейинки каалаган тамга же 1, 2 сандары:
let str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'! ! ! ! x3x'
Мисал
Бул мисалда издөө үлгүсү мындай көрүнөт:
икстердин ортосунда 'a' дан 'z' ге чейинки тамгалар
1 же андан көп санда:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'xx ! ! ! x123x xa3x'
Мисал
Келгиле, тамгалардын саны нөл да болушу мүмкүн кылып көрөлү:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
Натыйжада өзгөрмөгө төмөнкүсү жазылат:
'! ! ! ! x123x xa3x'
Практикалык тапшырмалар
Төмөнкү сап берилген:
let str = 'aba aea aca aza axa';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - 'b', 'e'
же 'x' тамгасы.
Төмөнкү сап берилген:
let str = 'a1a a3a a7a a9a aba';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - 3 тен 6 га чейинки сан.
Төмөнкү сап берилген:
let str = 'aba aea afa aha aga';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - a дан gге чейинки тамга.
Төмөнкү сап берилген:
let str = 'aba aea afa aha aga';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - a дан fке чейинки жана j дан zге чейинки тамга.
Төмөнкү сап берилген:
let str = 'aAa aea aEa aJa a3a';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - a дан fке чейинки жана A дан Dге чейинки тамга.
Төмөнкү сап берилген:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - кичине латын тамгалары,
калгандарына тийбестен.
Төмөнкү сап берилген:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - кичине жана чоң латын
тамгалары, калгандарына тийбестен.
Төмөнкү сап берилген:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Төмөнкү үлгү боюнча таба турган регулярдуу сөз айкашын жазыңыз:
четтеринде 'a' тамгалары турсун,
алардын ортосунда - кичине латын тамгалары
жана сандар, калгандарына тийбестен.