⊗pyPmREHHy 47 of 129 menu

Python-da Regulyar Ifadələrdə Daxili Çizgi Dəstləri

Çizgi də [ ] daxilində xüsusi simvoldur (ancaq xaricində - deyil). Əgər sizə çizgi özü kimi simvol lazımdırsa - onu qrup ayırıcısı kimi qəbul edilməyəcəyi yerdə qoyun.

Bu niyə vacibdir: siz özünüz də hiss etmədən simvol qrupu yarada bilərsiniz. Məsələn, bununla - '[:-@]' - siz düşünürsünüz ki, nöqtəli vergül, çizgi və at işarəsini seçirsiniz, amma əslində :@ arasındakı simvol qrupu alınır. Bu qrupa aşağıdakı simvollar daxildir: ? < = > :

Onlar hardan gəldi? ASCII cədvəlindən - nöqtəli vergülün nömrəsi at işarəsindən kiçikdir - və beləliklə bir qrup alınır. Yəni bütün qruplar ASCII cədvəlinə görə alınır (istəsəniz bundan istifadə edə bilərsiniz).

Bununla necə mübarizə aparmaq: çizgi simvolunu elə yerdə qoyun ki, o, mütləq qrup simvolu kimi qəbul edilməsin, məsələn, əvvəlində və ya sonunda (yəni [-dən sonra və ya ]-dən əvvəl).

Həmçinin çizgini ekranlaşdıra bilərsiniz - onda o, mövqeyindən asılı olmayaraq özünü ifadə edəcək. Məsələn, [:-@] əvəzinə [:\-@] yazın - və artıq qrup olmayacaq, əvəzində üç simvol olacaq - nöqtəli vergül, çizgi və at işarəsi @.

Nümunə

Aşağıdakı nümunədə axtarış şablonu belədir: rəqəm 1, sonra 'a'-dan 'z'-dək hərf, sonra rəqəm 2:

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

Kodun icrasının nəticəsi:

'! 1-2 ! !'

Nümunə

Gəlin indi çizgini ekranlaşdıraq. Nəticədə axtarış şablonu belədir: rəqəm 1, sonra 'a' hərfi, və ya çizgi, və ya 'z' hərfi, sonra rəqəm 2:

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

Kodun icrasının nəticəsi:

'! ! 1c2 !'

Nümunə

Sadəcə çizgini ekranlaşdırmadan yerini dəyişmək olar:

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

Kodun icrasının nəticəsi:

'! ! 1c2 !'

Nümunə

Aşağıdakı nümunədə axtarış şablonu belədir: birinci simvol kiçik hərflər və ya çizgi '-', sonra iki 'x' hərfi:

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

Kodun icrasının nəticəsi:

'! Axx ! @xx'

Nümunə

Aşağıdakı nümunədə axtarış şablonu belədir: birinci simvol kiçik, böyük hərflər və ya çizgi '-', sonra iki 'x' hərfi:

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

Kodun icrasının nəticəsi:

'! ! ! @xx'

Nümunə

Çizgini iki qrup arasında yerləşdirmək olar - orada o, əminliklə başqa bir qrup yaratmayacaq:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

Kodun icrasının nəticəsi:

'! ! ! @xx'

Praktiki Tapşırıqlar

Verilmiş sətir:

txt = 'xaz xBz xcz x-z x@z'

Aşağıdakı şablona uyğun bütün sətirləri tapın: 'x' hərfi, böyük və ya kiçik hərf və ya çizgi, 'z' hərfi.

Verilmiş sətir:

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

Aşağıdakı şablona uyğun bütün sətirləri tapın: 'x' hərfi, sonra və ya dollar, və ya çizgi və ya plus, sonra 'z' hərfi.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et