⊗pyPmRESF 73 of 129 menu

Python да регуляр ифодалар учун байроқлар

Байроқларни регуляр ифодалар билан ишлайдиган методлар учун мажбурий бўлмаган параметр сифатида белгилаш учун куйидаги синтаксис ишлатилади:

flags=re.байроқ номи

Регуляр ифодалар билан ишлаш учун асосий байроқлар

Байроқ Вазифаси
re.IGNORECASE Белгиларнинг ёзилиш регистрини инкор қилиш.
re.DOTALL Нуқта ҳар қандай белгини, шу жумладан сатр ўтишни ҳам англатади.
re.I Қидирувни регистрга сезимсиз қилади.
re.L Cўзларни жорий тилга мос келадиган холда излайди. Бу интерпретация алфавит гуруҳига (\w ва \W), шунингдек cўз чегарасининг ҳаракатига (\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)

Бажарилган код натижаси:

'!!!!!!!'

Мисол

Параметрда бир нечта байроқни ҳам ўтказish мумкин, уларнинг ўртасига + операторини қўйиб. Аввал '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çeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш