⊗pyPmRESF 73 of 129 menu

Python'дагы регулярдык туюнтмалар үчүн флагдар

Регулярдык туюнтмалар менен иштеген методдор үчүн милдеттүү эмес параметр катары флагдарды белгилөө үчүн төмөнкү синтаксис колдонулат:

flags=re.флагдын аты

Регулярдык туюнтмалар менен иштөө үчүн негизги флагдар

Флаг Мақсаты
re.IGNORECASE Тамгалардын жазылыш регистрин эске албоо.
re.DOTALL Чекит каалаган белгини, жол көчүрүүнү кошкондо, билдирет.
re.I Издөөнү регистрге сезимтал эмес кылат.
re.L Сөздөрдү учурдагы тилге ылайык издеп табат. Бул чечмелөө алфавиттик топко (\w жана \W) ошондой эле сөз чегинин аракетине (\b жана \B) таасир этет.
re.M $ белгиси тексттин каалаган сабынын аягында (тексттин аягы гана эмес) издөөнү аткарат жана ^ белгиси тексттин каалаган сабынын башында (тексттин башы гана эмес) издөөнү аткарат.
re.S Чекит (.) маанисин жаңы сап сыяктуу каалаган белги менен дал келүүгө өзгөртөт.
re.U Тамгаларды Unicode белгилер жыйындысына ылайык чечмелейт. Бул флаг \w, \W, \b, \B аракетине таасир этет. Python'до 3+ бул флаг демейки орнотулган.
re.X Регулярдык туюнтманын көп саптуу синтаксисин уруксат берет. Ал үлгүнүн ичиндеги боштуктарды ([] жыйындысынын ичиндеги же тескери кыякча менен экрандалган боштуктардан башкасы) эске албайт жана экрандалбаган '#' белгисин комментарий катары карайт.

Мисал

re.IGNORECASE флагынын жардамы менен тамгалардын регистрин эске албоого болот. Муну кантип жасаш керек экенин көрөлү. Бул мисалда регулярдык туюнтма кичине тамгаларды гана табат:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Кодду иштетүүнүн натыйжасы:

'! ! CCC DDD'

Мисал

Эми методдун төртүнчү параметрине re.IGNORECASE флагын кошсок, регулярдык туюнтма бардык регистрлердеги белгилерди издеп баштайт:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Кодду иштетүүнүн натыйжасы:

'! ! ! !'

Мисал

Регулярдык туюнтма менен бардык сап көчүрүүлөрдү табалы:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

Иштетилген коддун натыйжасы:

'aaa!bbb'

Мисал

Бирок, эгер бардык белгилерди алмаштыруу керек болсо, регулярдык туюнтмага чекит коюп, сап көчүрүүлөрү кармалбай калат:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

Иштетилген коддун натыйжасы:

'!!! !!!'

Мисал

Бул катаны оңдош үчүн re.DOTALL флагын колдонуш керек:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

Иштетилген коддун натыйжасы:

'!!!!!!!'

Мисал

Параметрге бир нече флаг да өткөрүп берилиши мүмкүн, алардын ортосуна + операторун коюп. Алгач саптын аягындагы 'a' тамгасын алмаштыралы:

txt = ''' aaa AAA aaa''' res = re.sub('aaa$', '!', txt) print(res)

Иштетилген коддун натыйжасы:

''' aaa AAA ! '''

Мисал

Эми re.M флагын кошолу:

res = re.sub('aaa$', '!', txt, flags=re.M) print(res)

Иштетилген коддун натыйжасы:

''' ! AAA ! '''

Мисал

Эми регистрди эске албоо үчүн флагды дагы колдонолу:

res = re.sub('aaa$', '!', txt, flags=re.M+re.IGNORECASE) print(res)

Иштетилген коддун натыйжасы:

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