⊗pyPmREGL 38 of 129 menu

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

Регулярдуу туюнтмалар демейкиде ачкөз. Бул алар мүмкүн болгон максималдуу сандагы символдорду кармап алат дегенди билдирет. Келгиле, мисал аркылуу карап көрөлү. Бизде төмөнкүдөй сап бар дейли:

txt = 'aeeex zzz x kkk'

Бул саптан биз төмөнкү үлгү боюнча 'aeeex' кошумча сабын табыш келебиз: 'a' тамгасы 'a', андан кийин каалаган символ бир же бир нече жолу, андан кийин 'x' тамгасы:

res = re.sub('a.+x', '!', txt) print(res)

Бизге '! zzz x kkk' сабын алуу керек болсо да, '! kkk' сабы чыгат. Мунун себеби, биздин регулярдык туюнтма 'а' тамгасынан 'a' 'x' тамгасына 'x' чейинки бардык символдорду издеп жатат. Бирок биздин сапта эки 'x' тамгасы бар 'x'! Ач көздүктүн натыйжасында, регулярдык туюнтма акыркы 'x'ке чейин издеп, бизге керек болгон нерсени эмес, аны кармап алат.

Албетте, көп учурда бул жүрүм-турум бизге да керек. Бирок, так ушул учурда ач көздүктү жок кылып, регулярдык туюнтмага биринчи 'x'ке чейин гана издешин айтуу керек. Бул учурда кайталоо операторунун артына суроо белгисин коюу керек:

res = re.sub('a.+?x', '!', txt) print(res) # '! zzz x kkk' сабын чыгарат

Ач көздүктү бардык кайталоо операторлоруна чектөөгө болот: * да, ? да, жана {} - мындай: *?, ?? жана {}?.

Төмөнкү сап берилген:

txt = 'aba accca azzza wwwwa'

Чектеринде 'a' тамгалары туруучу бардык саптарды таба турган жана алардын ар бирин '!' менен алмаштыра турган регулярдык туюнтма жазыңыз. 'a' тамгаларынын ортосунда каалаган символ болушу мүмкүн ('a' дан башка).

Кыргызча
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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу