⊗pyPmREHHy 47 of 129 menu

Python регуляр ифодалардаги тўпламлар ичидаги дефис

Дефис - [ ] ичида ҳам maxsus символдир (аммо ташқарида - эмас). Агар сизга дефис ўзи символ сифатида керак бўлса - уни гурух ажратиб белувчи сифатида қабул қилинмайдиган жойга қўйинг.

Бу нега муҳим: сиз ўзингиз сезмай символлар гурухи яратиб қўйишингиз мумкин. Масалан, шунақа - '[:-@]' - сиз қос инуқта, дефис ва итни танлайётганингиздай ўйлашингиз мумкин, аммо аслида : ва @ ўртасидаги символлар гурухи ҳосил бўлади. Бу гурухга куйидаги символлар киради: ? < = > :

Улар қаердан келиб чиққан? ASCII жадвалидан - қос инуқтанинг рақами итникидан кичкина - ва натижада гурух ҳосил бўлади. Яъни барча гурухлар ASCII жадвали бўйича ҳосил бўлади (истасангiz, будан фойдаланишингиз мумкин).

Бу билан қандай курашиш керак: дефис символini ўзи гурух символi сифатида аник қабул қилинмайдиган жойга, масалан, бошланғич ёки охирига (яъни [ дан кейин ёки ] дан олдин) қўйинг.

Шунингдек, дефисни экранлаш мумкин - у ҳолда у ўз ўрнига қарамасдан ўзини англатади. Масалан, [:-@] ўрнига [:\-@] ёзиш - ва энди гурух бўлмайди, балки учта символ - қос инуқта, дефис ва ит @ бўлади.

Мисол

Куйидаги мисолда қидириш намунаси шундай: рақам 1, кейин 'a' дан 'z' гача ҳарф, кейин рақам 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a-z]2', '!', txt) print(res)

Кодни ишга тушириш натижаси:

'! 1-2 ! !'

Мисол

Келгинг, энди дефисни экранлаймиз. Натижада қидириш намунаси шундай: рақам 1, кейин 'a' ҳарфи, ёки дефис, ёки 'z' ҳарфи, кейин рақам 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a\-z]2', '!', txt) print(res)

Кодни ишга тушириш натижаси:

'! ! 1c2 !'

Мисол

Уни экранламасдан, сифатини ўзгартириш мумкин дефисни:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[az-]2', '!', txt) print(res)

Кодни ишга тушириш натижаси:

'! ! 1c2 !'

Мисол

Куйидаги мисолда қидириш намунаси шундай: биринчи символ - кичик ҳарфлар ёки дефис '-', кейин иккита 'x' ҳарфи:

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

Кодни ишга тушириш натижаси:

'! Axx ! @xx'

Мисол

Куйидаги мисолда қидириш намунаси шундай: биринчи символ - кичик, катта ҳарфлар ёки дефис '-', кейин иккита 'x' ҳарфи:

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

Кодни ишга тушириш натижаси:

'! ! ! @xx'

Мисол

Дефисни икки гурух ўртасига қўйиш мумкин - у ерда у яна бир гурух яратиши аник эмас:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

Кодни ишга тушириш натижаси:

'! ! ! @xx'

Амалий машқлар

Берилган сатр:

txt = 'xaz xBz xcz x-z x@z'

Куйидаги намуна бўйича барча сатрларни топиng: 'x' ҳарфи, катта ёки кичик ҳарф ёки дефис, 'z' ҳарфи.

Берилган сатр:

txt = 'xaz x$z x-z xcz x+z x%z x*z'

Куйидаги намуна бўйича барча сатрларни топиng: 'x' ҳарфи, кейин ё доллар, ёки дефис ёки плюс, кейин 'z' ҳарфи.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш