Ако сте програмер, шансе су да већ знате шта су регуларни изрази (регуларни изрази). Регек обрасци су примењени у скоро свим редовним програмским језицима, али ипак, већина програмера не препознаје снагу и свестраност ових образаца.

Овај водич говори о регуларним изразима и о томе како их можете користити у програмском језику Питхон.

Шта су регуларни изрази?

Регуларни изрази су обрасци који помажу кориснику да подудара комбинације знакова у текстуалним датотекама и низовима. Регуларне изразе можете користити за филтрирање или проналажење одређеног узорка у излазу наредбе или документа.

Постоје различити случајеви употребе регуларних израза, од којих је најпознатији наредба греп у Линуку. Остале апликације укључују филтрирање информација, попут издвајања адреса е-поште и телефонских бројева са депоније података.

Главни разлог зашто се многи програмери удаљавају од регуларних израза је недостатак свести о снази подударања образаца. Неке чак и регуларни изрази збуњују због велике количине знакова и секвенци које се користе у обрасцима.

instagram viewer

Који год разлог био, регуларни изрази јесу и биће један од најважнијих аспеката програмирања о коме би сви требало да знају.

Регуларни изрази: подударање знакова и секвенци

Регек је потпуно нови језик за себе. Регек механизам тумачи обрасце који се састоје од неколико знакова опремљених одређеним значењима. Основни литерали, попут алфанумеричких знакова, поклапају се сами са собом. Али сложени знакови попут $, *, +, {итд. помоћ у усклађивању вишег реда.

  1. Звездица (*): Поклапа се са претходним знаком нула или више пута. Дословно значење знака било би „Елемент помножен н пута“. На пример, ако је регуларни израз абц *, подударни низови ће бити аб, абц, абцц, абццц, абцццц итд. Израз [пре нове ере]* одговараће бц, бцбц, бцбц итд.
  2. Плус (+): Подудара се са претходним знаком један или више пута. Рад на + карактер је сличан *, али + знак изоставља образац ако се знак не појављује. На пример, абц + подудараће се са абц, абцц, абццц итд. али не и аб.
  3. Знак питања (?): Поклапа се са претходним знаком нула или једанпут. На пример, образац абц? поклапаће се само са аб и абц.
  4. Цев (|): Користи се као бинарни ИЛИ оператер. Поклапа се са било којим од знакова који претходе и следе цев. На пример, а | б одговараће или а или б.
  5. Тачка (.): Поклапа се са ликом чији је идентитет непознат. На пример, а.ц ће се подударати са аац, абц, ацц, а2ц итд.
  6. Шаргарепа (^): Поклапа се са првим знаком у обрасцу. На пример, ^ Ра подудараће се са речима које почињу са Ра као што су Зец, Ракун и Рандом.
  7. Долар ($): Поклапа се са последњим знаком у обрасцу. На пример, ан $ подудараће се са речима које се завршавају са ан као што су Ван, Дан и План.
  8. Цртица (-): Користи се за дефинисање опсега знакова. На пример, [0-9] подудараће се са свим једноцифреним нумеричким знаковима.

Посебне секвенце које се користе у обрасцима регуларних израза су:

  1. \ А: Враћа подударање ако су следећи знакови присутни на почетку низа. На пример, \ АТхе подудараће се са речима које почињу словом Тхе као што су Тхе, Тхем, Они итд.
  2. \ б: Враћа подударање ако је знак пронађен на почетку или на крају речи. На пример, \ бмад и луд \ б подудараће се са речима као што су направљен и номад редом.
  3. \ Б: Враћа подударање ако знак није пронађен на почетку или на крају речи.
  4. \ д: Поклапа се са нумеричким знаковима присутним у низу. На пример, /d* поклапаће се са бројевима као што су 1, 12, 1232 итд.
  5. \ Д: Подудара се са нумеричким знаковима у низу. / Д одговараће а, б, ц, ф итд.
  6. \ с: Поклапа се са празним знаком у тексту.
  7. \ С: Поклапа се са знаком који није размак у тексту.
  8. \ в: Враћа подударање ако низ садржи алфанумеричке знакове, укључујући доње црте. На пример, \ в подудараће се са а, б, ц, д, 1, 2, 3 итд.
  9. \ В: Враћа подударање ако низ не садржи алфанумеричке знакове или доње црте.
  10. \ З: Поклапа се са знаковима на крају низа. На пример, крај \ З подудараће се са речима које се завршавају са крај као што су савијање, поправљање, нагињање итд.

Питхон методе за регуларне изразе

У Питхону, ре Библиотека пружа све потребне функције и услужне програме потребне за имплементацију регуларног израза у ваше програме. Не морате да преузимате библиотеку помоћу пипа јер је унапред инсталиран са Питхон интерпретатором.

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

увоз ре

Имајте на уму да док преносимо регуларне изразе у Питхону, користимо сирове низове јер они не тумаче посебне знакове као што је \ н и \ т другачије.

Меч()

Тхе ре.матцх () метода у Питхону враћа објекат регуларног израза ако програм пронађе подударање на почетку наведеног низа. Ова функција узима два основна аргумента:

ре.матцх (образац, низ)

...где шаблон је регуларни израз и низ је текст који треба претражити.

Погледајте одломак кода испод.

увоз ре
матцх = ре.матцх (р'Ворд ', "Ова реченица садржи реч")
принт (матцх)

Тхе р знак пре низа представља сирови низ.

Излаз:

Ниједан

Поменути код се враћа Ниједан јер Ворд није био присутан на почетку низа.

Ако је пронађено подударање, можете га одштампати помоћу група() метода која припада објекту регуларног израза.

увоз ре
матцх = ре.матцх (р'Ворд ', "Ријеч је тешко прочитати")
испис (матцх.гроуп (0))

Излаз:

Ворд

Претрага()

Тхе ре.сеарцх () метода узима сличне аргументе као ре.матцх (). Док матцх () враћа само подударности присутна на почетку низа, Претрага() вратиће подударања пронађена у било којем индексу у низу.

увоз ре
матцх = ре.сеарцх (р'Ворд ', "Ова реченица садржи реч. Реч је тешко прочитати. ")
испис (матцх.гроуп (0))

Имајте на уму да меч() и Претрага() методе ће вратити само једно подударање узорка. У горе поменутом коду, Ворд појављује се два пута. Али Претрага() функција одговара само првом појављивању речи.

Ворд

ФиндАлл ()

Као што већ можете претпоставити, финдалл () метода враћа свако могуће подударање у низу.

увоз ре
матцх = ре.сеарцх (р'Ворд ', "Ова реченица садржи реч. Реч је тешко прочитати. ")
за елем у мечу:
принт (елем)

Уместо да врати регуларни израз, функција финдалл () враћа листу свих подударања. Можете да прелиставате листу помоћу а за петљу у питхон-у.

Разделити()

Ако желите да поделите низ на поднизове користећи образац као граничник, онда разделити() функција је она која вам је потребна.

увоз ре
сплит = ре.сплит (р'анд ', "Ова реч и то и ово се разликују.")
принт (сплит)

Излаз:

['Ова реч "," она "," ово су различите. “]

Суб ()

Тхе суб () метода омогућава кориснику да замени одређену реч на месту узорка. Потребни су следећи аргументи.

ре.суб (образац, замена, низ)

Размотрите овај фрагмент кода:

увоз ре
ресулт = ре.суб (р'анд ',' ор ', "Даве и Харри морају бити кажњени.")
испис (резултат)

Излаз:

Даве или Харри морају бити кажњени.

Саставити()

Тхе ре.цомпиле () метода у ре Библиотека омогућава кориснику да у меморију ускладишти компајлирану верзију узорка регуларног израза. Затим, помоћу компајлираног објекта, корисник може брзо филтрирати наведено одлагалиште текста за подударне обрасце.

увоз ре
паттерн = ре.цомпиле ('Питхон')
матцх = паттерн.финдалл („Питхон је одличан језик за писање скрипти. Питхон је лако научити. ")
принт (матцх)

Ова функција се првенствено користи за чување образаца који захтевају ресурсе и којима је потребно много времена за покретање. Претходно компајлирање и чување узорка као објекта решава овај проблем.

Искористите моћ Регек-а помоћу Питхона

Када радите са текстуалним датотекама и излазима, регуларни израз је сјајан алат који вам стоји на располагању. Можете брзо да напишете неки код за филтрирање или замену одређених образаца у документу.

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

Емаил
Питхон РегЕк варалица за надобудне програмере

Користите ову листу Питхон регуларних израза како бисте могли да будете бољи у коришћењу овог свестраног програмског језика.

Прочитајте следеће

Повезане теме
  • Програмирање
  • Програмирање
  • Питхон
О аутору
Деепесх Схарма (Објављено 41 чланак)

Деепесх је млађи уредник за Линук у МУО. На Интернету пише информативни садржај више од 3 године. У слободно време ужива у писању, слушању музике и свирању гитаре.

Још од Деепесх Схарме

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Још један корак…!

Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.

.