⊗pyPmREESCh 36 of 129 menu

Պայթոնի ռեգուլյար արտահայտություններում հատուկ նիշերի էկրանավորում

Ենթադրենք, պետք է անենք այնպես, որ հատուկ նիշը նշանակի ինքն իրեն: Դրա համար այն պետք է էկրանավորել հակադարձ շեղի օգնությամբ: Դիտարկենք օրինակներով:

Օրինակ

Հաջորդ օրինակում ռեգուլյար արտահայտության հեղինակը ցանկանում էր, որ որոնման ձևանմուշն ունենա այս տեսքը. տառ '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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել