⊗pyPmRESF 73 of 129 menu

Флагови за низове регуларних израза у Python-у

Да би се флагови задали као један од опционалних параметара за методе које раде са регуларним изразима, користи се следећа синтакса:

flags=re.име флага

Основни флагови за рад са регуларним изразима

Флаг Намена
re.IGNORECASE Игнорисање регистра писања симбола.
re.DOTALL Тачка означава било који симбол, укључујући и прелазак у нови ред.
re.I Чини претрагу неосетљивом на регистар.
re.L Тражи речи у складу са тренутним језиком. Ова интерпретација утиче на алфабетску групу (\w и \W), као и на понашање границе речи (\b и \B).
re.M Симбол $ обавља претрагу на крају било ког реда текста (не само крају текста) и симбол ^ обавља претрагу на почетку било ког реда текста (не само на почетку текста).
re.S Мења вредност тачке (.) на подударање са било којим симболом, укључујући нови ред.
re.U Тумари слова у складу са скупом симбола Unicode. Овај флаг утиче на понашање \w, \W, \b, \B. У Python-у 3+ овај флаг је подразумевано постављен.
re.X Омогућава вишередну синтаксу регуларног израза. Игнорише размаке унутар шаблона (осим размака унутар скупа [] или када су екранирани обрнутом косом цртом) и третира неекранирани '#' као коментар.

Пример

Помоћу флага re.IGNORECASE може се игнорисати регистар симбола. Хајде да погледамо како се то ради. У овом примеру регуларни израз ће пронаћи само мала слова:

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

Резултат извршавања кода:

'! ! CCC DDD'

Пример

А сада ћемо додати у четврти параметар метода флаг re.IGNORECASE и регуларни израз ће почети да тражи симболе у свим регистрима:

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

Резултат извршавања кода:

'! ! ! !'

Пример

Хајде да нађемо регуларним изразом све преласке у нови ред:

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

Резултат извршеног кода:

'aaa!bbb'

Пример

Али, ако треба заменити уопште све симболе, онда постављањем тачке у регуларном изразу, неће се захватити преласци у нови ред:

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

Резултат извршеног кода:

'!!! !!!'

Пример

Да би се исправила ова грешка, треба применити флаг re.DOTALL:

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

Резултат извршеног кода:

'!!!!!!!'

Пример

У параметар се може проследити и више флагова, стављајући између њих оператор +. Хајде прво да заменимо слово 'a' на крају реда:

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

Резултат извршеног кода:

''' aaa AAA ! '''

Пример

Сада ћемо поставити флаг re.M:

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

Резултат извршеног кода:

''' ! AAA ! '''

Пример

Хајде сада да применимо и флаг за игнорисање регистра:

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

Резултат извршеног кода:

''' ! ! ! '''
Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј