Почетна » Цодинг » Водич за почетнике за регуларни израз (Регек)

    Водич за почетнике за регуларни израз (Регек)

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

    Видео сам неколико људи који први погледају регекс и потпуно га игноришу. Не кривим их; Синтакса регек-а је сложена и много ће погоршати, попут оних у језицима командне линије, само још горе. Али онда је свака нова ствар застрашујућа и на први поглед изгледа немогуће. Дакле, позајмљујући Хоратиусове ријечи рећи ћу ово; Почните, будите храбри и усудите се да будете мудри.

    О Регеку

    Регек је имао своје корене у неурознаности и математици и био је имплементиран само у програмирању 1968. од стране Кен Тхомпсона у КЕД уређивачу текста за претраживање текста. Сада је део многих програмских језика као што су Перл, Јава, Питхон, Руби и ЈаваСцрипт.

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

    Ја ћу користити ЈаваСцрипт у мојим примјерима. Сада, да бисте прошли почетнички ниво, морате научити све карактери, класе, квантификатори, модификатори и методе користи се у регеку. Овде је линк на страницу регуларног израза мреже Мозилла Девелопер Нетворк где можете видети табелу која садржи све те. Можете такођер упутити на шифру на крају овог поста са највише кориштеним знаковима.

    Да видимо једноставан пример са објашњењем. Ово је регек.

    То је оно што ће горе наведени регекс тражити у линији, знак 'Б' иза којег следи бар један од било којег карактера између (и укључујући) 'а' до 'з', 'А' до 'З' и бројева 0 до 9.

    Ево примера подударања у означеној линији:

    Корпа, булб, Б12 витамин, БаСО4, Н пре нове ере компанија

    Горњи регек ће зауставити претрагу на Корпа и врати позитиван одговор. То је зато што глобални модификатор 'г'мора бити специфицирано ако желите да регек погледа све могуће утакмице.

    Сада ћемо видети како да користимо овај израз у ЈаваСцрипту. Тхе тест метода иде: ако је пронађена утакмица за повратак истина, друго фалсе.

     вар инпут = "ваш тест стринг", регек = / Б [а-зА-З д] + /; иф (! регек.тест (инпут)) алерт ('Но матцх ис фоунд'); друго упозорење ('Пронађен је спој');

    Пробајмо други метод: утакмица враћа резултате пронађене у низу.

     вар инпут = "ваш тест стринг", регек = / Б [а-зА-З д] + / г, / * Додао сам глобални модификатор 'г' у регек да би добио сва подударања * / ари = инпут.матцх (регек); иф (ари === нулл) алерт ('Нама се събитие'); елсе алерт ('поклапања су:' + ари.тоСтринг ());

    Шта кажеш на стринг заменити? Покушајмо сада са регексом.

     вар инпут = "ваш тест стринг", регек = / Б [а-зА-З д] + / г; алерт (инпут.реплаце (регек, "#"));

    Испод је кодна ознака за подешавање. Кликните на картицу "ЈаваСцрипт" да бисте видели ЈС код.

    Вежбе

    За вежбе, можете гоогле “Регек вјежбе” и покушајте да их решите. Ево шта можете очекивати када покушате ове вежбе, у складу са нивоима тежине.

    Басиц

    За мене потврдите лозинку довољно за почетак. Дакле, потврдите лозинку за дужину од 8 до 16 знакова, алфанумерички са дозвољеним избором специјалних знакова.

    Интермедиате

    Ово је место где треба да вежбате са више података о стварном свету и научите још неколико регек тачака погледај главу, гледај своје тврдње и одговарајуће групе;

    • Потврдите ПИН кодове, хексадецимале, датуме, ИД е-поште, плутајућу тачку.
    • Замените нулу, беле, низ подударних речи
    • Издвојите различите делове УРЛ-а

    Напредно

    Можете оптимизовати решења горе наведених вежби - најоптималнији регек за е-пошту има хиљаде знакова у њему - тако узмите га колико вам је удобно и то је довољно. Такође можете покушати:

    • Разврставање ХТМЛ-а или КСМЛ-а (иако се у стварном свијету то обесхрабрује, јер кориштење регуларног израза за рашчлањивање не-регуларног језика, као што је ХТМЛ, никада га неће учинити сигурним.
    • Замена ознака
    • Уклањање коментара (осим условних коментара за ИЕ)

    Алати

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

    • Дебуггек - исцртава регек дијаграм по вашем уносу и можете брзо да делите са СтацкОверфлов-ом одатле.
    • РегЕкр - Можете тестирати ваше регек са овим. Такође је добио референцу, шифру и примере који ће вам помоћи.
    • Рефиддле - У овом тренутку, осим ЈаваСцрипт-а, можете се и зајебавати са Руби и .НЕТ верзијама регек-а у њему.

    Регек Цхеатсхеет

    Токен Дефиниција
    [абц] Било који појединачни знак а, б или ц
    [^ абц] Било који знак осим а, б или ц
    [а-з] Карактер између (укључујући) а до з
    [^ а-з] Знак осим од а до з
    [А-З] Карактер између (укључујући) од А до З
    . Било који појединачни знак
    с \ т Било који знак празнине
    С Било који знак без размака
    д Било која цифра од 0 до 9
    Д Било које без цифре
    в Било који карактер речи (слово, број и доња црта)
    В Било који знак који није ријеч
    (…) Снимите све приложено
    (а | б) Подесите или а или б
    а? Карактер а је или одсутан или присутан једанпут
    а * Карактер а је или одсутан или је присутан више пута
    а+ Карактер а је присутан један или више пута
    а 3 3 узастопна појављивања карактера
    а 3, 3 или више појава карактера а узастопно
    3,6 3 до 6 појава карактера узастопно
    ^ Почетак низа
    $ Крај низа
    б Граница речи. Ако је знак последњи или први реч речи, или ако је знак између речи или знака који није реч
    Б Граница без речи

    Сада прочитајте: Регуларни изрази: 30 Корисни алати и ресурси