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

Маълумингиздек, [ ] ичидаги шляпка инкорни ифодалайди, агар у қавс бошланишида ёзилган бўлса. Демак, у шу қавс ичидаги махсус символдир. Шляпкани символ сифатида олиш учун уни ё ҳимoyaланг ёки биринчи ўриндан олиб ташланг.

Мисол

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

pythontxt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)

print(res)

Натижада ўзгарувчига куйидагилар ёзилади:

python'! ! ! dxx'

Мисол

Энди эса қидируш намунаси шундай: биринчи символ 'd' ёки '^', сўнгра иккита 'x' ҳарфи:

pythontxt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)

print(res)

Натижада ўзгарувчига куйидагилар ёзилади:

python'axx bxx ! !'

Мисол

Шляпкани биринчи ўриндан олиб ташламасдан, уни тескари чиззиқ ёрдамида ҳимoyaлаш мумкин, ва у ўзини англата бошлайди:

pythontxt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)

print(res)

Натижада ўзгарувчига куйидагилар ёзилади:

python'axx bxx ! !'

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

Задание 1

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

pythontxt = '^xx axx ^zz bkk @ss'

Регуляр ифодани ёзинг, куйидаги намуна бойича сатрларни топадиган: шляпка ёки ит, сўнгра иккита лотин ҳарфи.

Задание 2

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

pythontxt = '^xx axx ^zz bkk @ss'

Регуляр ифодани ёзинг, куйидаги намуна бойича сатрларни топадиган: шляпка ва ит эмас, сўнгра иккита лотин ҳарфи.

Задание 3

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

pythontxt = '^xx axx ^zz bkk'

Регуляр ифодани ёзинг, куйидаги намуна бойича сатрларни топадиган: шляпка ва бошлиқ эмас, сўнгра иккита лотин ҳарфи.