⊗pyPmREHHy 47 of 129 menu

Python регулярдык туюнтмаларындагы топтордун ичиндеги дефис

Дефис да - [ ] ичинде атайын символ (ал эми сыртында - эмес). Эгерде сизге дефис символ катары керек болсо - аны топ бөлүүчү катары кабыл алынбай турган жерге коюңуз.

Бул эмне үчүн маанилүү: сиз өзүңүз да билбей, символдор тобун түзүп жибересиз. Мисалы, мындай - '[:-@]' - сиз үчүнчү нерсени, дефис жана @ белгисин тандап жатасыз деп ойлосоңуз да, иш жүзүндө : жана @ ортосундагы символдор тобу пайда болот. Бул топко төмөнкү символдор кирет: ? < = > :

Алар кайдан келип чыкты? ASCII таблицасынан - үчүнчү нерсенин номери @ белгисиникинен кичине - жана натыйжада топ пайда болот. Башкача айтканда, бардык топтор ASCII таблицасы боюнча пайда болот (каалоо менен муну колдонсо болот).

Муну менен кантип күрөшүү керек: дефис символун такыр эле топ символу катары кабыл алынбай турган жерге, мисалы, башына же аягына (башкача айтканда, [дан кийин же ]дан мурун) коюңуз.

Ошондой эле дефисди экраңдап коюуга болот - анда ал ордуна карабастан өзүн өзү билдирет. Мисалы, [:-@] ордуна [:\-@] деп жазыңыз - жана анда эч кандай топ болбойт, бирок үч символ болот - үчүнчү нерсе, дефис жана @ белгиси @.

Мисал

Төмөнкү мисалда издөө үлгүсү төмөнкүдөй: 11 саны, андан кийин 'a' дан 'z' ге чейинки тамга, андан кийин 22 саны:

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

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

'! 1-2 ! !'

Мисал

Келгиле, эми дефисди экраңдап көрөлү. Натыйжада издөө үлгүсү төмөнкүдөй: 11 саны, андан кийин 'a' тамгасы, же дефис, же 'z' тамгасы, андан кийин 22 саны:

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'

Төмөнкү үлгү боюнча бардык саптарды табыңыз: 'x''x' тамгасы, чоң же кичине тамга же дефис, 'z''z' тамгасы.

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

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

Төмөнкү үлгү боюнча бардык саптарды табыңыз: 'x''x' тамгасы, андан кийин же доллар, же дефис же кошуу белгиси, андан кийин 'z''z' тамгасы.

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