⊗pyPmRESF 73 of 129 menu

Python-da Regulyar Ifadeler ucun Bayraqlar

Regulyar ifadelerle isleyen metodlar ucun mecburi olmayan parametrlerden biri kimi bayraqlari teyin etmek ucun asagidaki sintaksisdən istifade olunur:

flags=re.bayraq_adı

Regulyar ifadelerle iş üçün əsas bayraqlar

Bayraq Təyinat
re.IGNORECASE Simvolların yazılma registrinin nəzərə alınmaması.
re.DOTALL Nöqtə istənilən simvolu, o cümlədən sətir köçürməni də işarə edir.
re.I Axtarışı registrə həssas etmir.
re.L Sözləri cari dilə uyğun olaraq axtarır. Bu şərh əlifba qrupuna (\w\W), həmçinin söz sərhədinin davranışına (\b\B) təsir göstərir.
re.M $ simvolu mətndən asılı olmayaraq istənilən sətrin sonunda axtarış edir (və ^ simvolu mətndən asılı olmayaraq istənilən sətrin əvvəlində axtarış edir).
re.S Nöqtənin (.) qiymətini dəyişir, belə ki, o, yeni sətir daxil olmaqla istənilən simvolla uyğun gəlir.
re.U Hərfləri Unicode simvol dəsti ilə uyğun şəkildə şərh edir. Bu bayraq \w, \W, \b, \B davranışına təsir göstərir. Python 3+-da bu bayraq standart olaraq təyin edilib.
re.X Çoxsətirli regulyar ifadə sintaksisinə icazə verir. O, şablon daxilindəki boşluqları nəzərə almır ([] dəsti daxilindəki boşluqlar və ya gerişli slyash ilə qorunanlar istisna olmaqla) və qorunmamış '#' simvolunu şərh kimi emal edir.

Nümunə

re.IGNORECASE bayrağı vasitəsilə simvolların registrini nəzərə almamaq olar. Gəlin bunun necə edildiyinə baxaq. Bu nümunədə regulyar ifadə yalnız kiçik hərfləri tapacaq:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Kodu icra etmənin nəticəsi:

'! ! CCC DDD'

Nümunə

İndi isə metodun dördüncü parametrinə re.IGNORECASE bayrağını əlavə edək və regulyar ifadə bütün registrlerde simvolları axtarmağa başlayacaq:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Kodu icra etmənin nəticəsi:

'! ! ! !'

Nümunə

Gəlin regulyar ifadə ilə bütün sətir köçürmələrini tapaq:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

Kodu icra etmənin nəticəsi:

'aaa!bbb'

Nümunə

Lakin, əgər ümumiyyətlə bütün simvolları dəyişdirmək lazımdırsa, regulyar ifadədə nöqtə qoysaq, sətir köçürmələri tutulmayacaq:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

Kodu icra etmənin nəticəsi:

'!!! !!!'

Nümunə

Bu səhvi düzəltmək üçün re.DOTALL bayrağından istifadə etmək lazımdır:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

Kodu icra etmənin nəticəsi:

'!!!!!!!'

Nümunə

Parametrdə bir neçə bayraq da ötürmək olar, onların arasına + operatoru qoymaqla. Gəlin əvvəlcə sətrin sonundakı 'a' hərfini əvəz edək:

txt = ''' aaa AAA aaa''' res = re.sub('aaa$', '!', txt) print(res)

Kodu icra etmənin nəticəsi:

''' aaa AAA ! '''

Nümunə

İndi isə re.M bayrağını təyin edək:

res = re.sub('aaa$', '!', txt, flags=re.M) print(res)

Kodu icra etmənin nəticəsi:

''' ! AAA ! '''

Nümunə

Gəlin indi həm də registri nəzərə almamaq üçün bayraq tətbiq edək:

res = re.sub('aaa$', '!', txt, flags=re.M+re.IGNORECASE) print(res)

Kodu icra etmənin nəticəsi:

''' ! ! ! '''
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