⊗pyPmREESCh 36 of 129 menu

Экранировкаи аломатҳои махсус дар ибораҳои мунтазами Python

Фарз мекунем, ки бояд кор кард, то аломати махсус худро ифода кунад. Барои ин онро бо истифода аз слэши баръакс экран кардан лозим аст. Биёед дар мисолҳо бубинем.

Мисол

Дар мисоли зерин муаллифи ибораи мунтазам мехост, ки шаблони ҷустуҷӯ ин тавр намуд дошта бошад: ҳарф 'a', сипас аломати қошида '+', сипас ҳарф 'x'. Аммо, муаллифи рамз аломати '+'-ро экран накардааст ва аз ин рӯ шаблони ҷустуҷӯ дар асл ин тавр намуд дорад: ҳарф 'a' як ё зиёда маротиба, сипас ҳарф 'x':

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

Натиҷаи иҷрои рамз:

'a+x ! ! !'

Мисол

Ва ҳоло муаллиф аломати қошидаро бо слэши баръакс экран кардааст. Ҳоло шаблони ҷустуҷӯ ин тавр намуд дорад, ки лозим аст: ҳарф 'a', сипас аломати қошида '+', сипас ҳарф 'x':

txt = 'a+x ax aax aaax' res = re.sub('a\+x', '!', txt) print(res)

Натиҷаи иҷрои рамз:

'! ax aax aaax'

Мисол

Дар ин мисол шаблон ин тавр намуд дорад: ҳарф 'a', сипас нуқта '.', сипас ҳарф 'x':

txt = 'a.x abx azx' res = re.sub('a\.x', '!', txt) print(res)

Натиҷаи иҷрои рамз:

'! abx azx'

Мисол

Дар мисоли зерин муаллиф слэшро экран карда натавонист ва зерисатрҳои ҳама, пайдо шуданд, зеро нуқтаи экраннашуда ҳар як аломатро ифода мекунад:

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

Натиҷаи иҷрои рамз:

'! ! !'

Тавзеҳ

Диққат кунед, ки агар шумо слэши баръаксро барои нуқта фаромӯш кунед (вақте ки он бояд худро ифода кунад) - инро ҳатто шояд дида натавонед:

res = re.sub('a.x', '!', 'a.x') print(res) # '!'-ро бармегардонад, ҳамон тавре ки мо мехостем

Визуян дуруст кор мекунад (зеро нуқта ҳар як аломатро ифода мекунад, ҳатто нуқтаи оддиро '.'). Аммо агар сатрро иваз кунем, ки дар он иваз карданҳо рух медиҳад - мо хатои худро хоҳем дид:

res = re.sub('a.x', '!', 'a.x abx azx') print(res) # '! ! !'-ро бармегардонад, вале интизор '! abx azx' буд

Рӯйхати аломатҳои махсус ва оддӣ

Агар аломати оддиро экран кунед - ҳеҷ чиз бад рӯй намедиҳад - он ҳамон тавре худро ифода хоҳад кард. Истисно - рақамҳо, онҳоро наметавон экран кард.

Аксар вақт шубҳа пайдо мешавад, ки оё ин аломат махсус аст. Баъзеҳо то ба он ҷо мерасанд, ки ҳамаи аломатҳои шубҳаоварро пай дар пай экран мекунанд. Аммо, ин амалиёти бад аст (ибораи мунтазамро бо слэшҳои баръакс партофта мекунад).

Аломатҳои махсус мебошанд: $ ^ . * + ? \ / {} [] () |

Аломатҳои махсус нестанд: @ : , ' " - _ = < > % # ~ `& !

Масъалаҳои амалӣ

Сатр дода шудааст:

txt = 'a.a aba aea'

Ибораи мунтазаме нависед, ки сатрро 'a.a' пайдо кунад, дигаронро нагирад.

Сатр дода шудааст:

txt = '2+3 223 2223'

Ибораи мунтазаме нависед, ки сатрро '2+3' пайдо кунад, дигаронро нагирад.

Сатр дода шудааст:

txt = '23 2+3 2++3 2+++3 345 567'

Ибораи мунтазаме нависед, ки сатрҳоро '2+3', '2++3', '2+++3', пайдо кунад, дигаронро нагирад (аломати қошида метавонад ҳар қадар бошанд).

Сатр дода шудааст:

txt = '23 2+3 2++3 2+++3 445 677'

Ибораи мунтазаме нависед, ки сатрҳоро '23', '2+3', '2++3', '2+++3' пайдо кунад, дигаронро нагирад.

Сатр дода шудааст:

txt = '*+ *q+ *qq+ *qqq+ *qqq qqq+'

Ибораи мунтазаме нависед, ки сатрҳоро '*q+', '*qq+', '*qqq+', пайдо кунад, дигаронро нагирад.

Сатр дода шудааст:

txt = '[abc] {abc} abc (abc) [abc]'

Ибораи мунтазаме нависед, ки сатрҳоро дар қофаҳои чоркунҷа пайдо кунад ва ба '!' иваз кунад.

Тоҷикӣ
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 истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан