Регуларни израз: шта то значи

click fraud protection

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

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

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

[а-зА-З0-9 _. + -] + @ [а-зА-З0-9 _-] + \. [а-зА-З0-9 _.-] +

Реално, заправо није тако лоше; тај одговара адресама е-поште. Као што ћете видети, изрази се могу рашчланити на појединачне знакове, што све говори програму шта треба да тражи.

Регуларни изрази су готово универзални. Исти генерал синтакса примењује се на све језике са само незнатним варијацијама ту и тамо. Овај водич садржи примере и из Питхона и из ЈаваСцрипт-а, као и из обичног старог регуларног израза. Ако радите са другим језиком, не брините. Готово све ће се односити и на ваш језик по избору.

instagram viewer

Основе Регек-а

Технички, нема пуно ствари које се не би могле сматрати регуларним изразима, јер су дословни низови текста заиста једноставни. Ако бисте користили 'абцде' као регуларни израз, програмски језик би тражио управо тај низ.

Први динамичнији подударни знак који треба погледати је „.“ карактер. У овом контексту, тачкасти знак је џокер знак. Ако претражујете помоћу њега, ваш програм ће вратити било који знак који пронађе као подударање.

Па, шта ако желите да тражите дословну тачку? Ни то није тешко. Када желите да користите буквалну тачку, додајте косу косу црту пре ње, овако: '\.'

Повратна црта знакови

Међутим, повратна коса црта овде игра много више улога. Већина главних регек знакова укључује косу црту.

Знаменке регуларног израза
Проналажење цифара помоћу регуларног израза у Питхону.

Погледајте неколико примера:

  • \ д: цифре од 0 до 9
  • \ в: Слова, цифре и доња црта "Знакови речи"
  • \ с: Размаци, укључујући картице, нове редове и редовне размаке

Ако користите велико слово уместо било ког од ових, добићете обрнуто. На пример, '\ Д' вам даје све осим цифара.

Предавања

Тхе знакови повратне косе црте су добри, али су и даље некако крути. Генерално, желећете да се подударате са словима, бројевима или неколико посебних знакова.

Часови редовног изражавања
Коришћење класа Регек за проналажење слова у Питхону.

Поставите знакове са којима желите да се подударају у пар угластих заграда '[]' и ваш програм ће се подударати са било којим од њих. Ово се назива класа регуларних израза.

[абцд1234]

Горњи пример је и даље неефикасан. Уместо тога, можете да користите цртицу да одредите опсег; на пример, сва мала слова:

[а-з]

Можете навести и опсеге. Доле наведени израз одговара свим словима и цифрама:

[а-зА-З0-9]

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

[а-зА-З0-9 _. + -]

Као и код знакова повратне косе црте, и овде можете добити обрнути резултат. Поставите '^' на почетак предавања да бисте их изузели из резултата. Ово ће из резултата искључити цифре и неколико посебних знакова:

[^0-9_+.-]

Групе

Групе користе скуп заграда да раздвоје ваш израз. Они групишу податке, омогућавајући вашем програму да их циља и користи. Када програм скине ' http://' са веб адресе користи регек групе да би то постигао. Редовни израз омогућава да циља одређене критеријуме, а групе га одвајају.

Групе редовног израза
Помоћ за Регек групе Проналажење УРЛ-ова у ЈаваСцрипт-у.

Групе вам такође омогућавају да бирате између једног или другог узорка. Они запошљавају један '|' да делује као „или“ у изразу. Израз у наставку ће се подударати са било којим од ових: .цом, .орг, .нет, .еду или .гов.

\. (цом | орг | нет | еду | гов)

Квантификатори

Квантификатори су управо оно како звуче. Изразу кажу количина карактера који тражите. Ово су доступни квантификатори:

  • *: Нула или више
  • +: Један или више њих
  • ?: Нула или један
  • {3}: Износ у заградама

Било који од ових квантификатора ставите на крај знака или класе чији износ желите да одредите. Овај пример тражи стандардне седмоцифрене бројеве телефона:

\ д {3} [. * -] \ д {3} [. * -] \ д {4}

Сидра и границе

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

Сидра за регуларни израз
Регек сидра користе позиционирање да пронађу подударање у ЈаваСцрипт-у.

Ово су ваше примарне опције:

  • ^: Почетак низа
  • $: Крај низа
  • \ б: Граница речи (почетак или крај речи)

Ако желите да пронађете само низове који почињу словом, можете покушати:

^ [а-зА-З]

Рецимо да желите да пронађете само реч „то“, а не речи које садрже слова И и Т; ту бисте користили границе речи.

\ б (и | И) т \ б

Последње мисли

Регуларни изрази могу вам уштедети тону главобоље током програмирања. Замислите да покушавате да напишете логику како бисте постигли било који од примера у овом чланку. Био би то ужасан неред. Једном када се осећате угодно са њима, вероватно ћете заиста уживати у моћи и флексибилности регуларног израза.

instagram story viewer