Рад са регуларним изразима у Јави

Преглед садржаја
У данашњим информационим системима нормално је видети функције претраживања, те функције је потребно сваки пут обрадити обрасци много више комплекса. Да би се могао размотрити сваки случај посебно било би потребно неколико хиљада година, због чега су развијени механизми који омогућавају успостављање формулисаног приказа претрага.
Ове формуле се могу наћи у регуларни изрази, који нам омогућавају да успоставимо обрасце за вредновање текстуалних низова и вратимо позитивну или негативну вредност ако наведени низ одговара или не израженој формули.
Ин Јава Регуларне изразе можемо имплементирати на једноставан начин, али за то је потребно прилично опсежно проучавање програмера како би могао научити различите елементе које он има.
Начин на који можемо изразити формуле помоћу којих можемо тестирати наше обрасце са одређеном конструкцијом кода, назваћемо ово синтакса регуларног израза.
Шта нам синтакса дозвољава?Синтакса нам дозвољава да успоставимо обрасце према типу карактер, количина, комбинација карактера и количина, почните са одређеним елементом, поставите израз за центар формуле и крај. Овим можемо идентификовати врло специфичне обрасце који би могли бити потребни у нашем програму или можда филтрирати на адекватнији начин претрагу по тексту или бази података.
Погледајмо испод малу листу елемената који се најчешће користе у регуларним изразима са Јава, има много више елемената од оних приказаних у овом водичу, па се препоручује да сами истражите како бисте појачали знање:
Почетак линије\^ Са овим елементом настављамо да указујемо на Јава који започиње линију у регуларном изразу.
Крај линије$ Овим симболом означавамо да смо завршили линију.
Листа ликова[] Заградама указујемо регуларном изразу да треба да тражи било коју од листа унутар.
Изузми[\^] Омогућава нам да изаберемо било који знак који није наведен.
Квантификатор{ј, к} Пронађите оно што је унутра ј број приказаних пута к; {ј,} у овом другом случају, шта год да се налази ј један или више пута; коначно {ј} означава да би требало да се појави оно што је у ј само једном.
Речни ликови\ в Пронађите знакове који припадају реч, али ако користимо \ В ради супротно, лоцира знакове који не припадају.
Цифре\ д Омогућава нам да правимо подударања само са цифрама и ако их користимо \ Д упоредићемо све што није цифрени или нумерички знак.
Празнине\ с Омогућава нам да упоредимо празна места као што су табови, размакница, али ако их користимо \ С ради супротно, одговара свему што није бели простор.
Као што видимо са ових неколико елемената, можемо изградити различите комбинације помоћу којих можемо добити релативно сложене обрасце.
Ако желимо да пробамо један редовна фраза Пре састављања програма можемо користити страницу рубулар.цом на којој можемо проценити обрасце у реалном времену.

ЕНЛАРГЕ

Извешћемо једноставан пример где ћемо тестирати а регуларни израз за потврду е -поште, користићемо следеће:
[_ а-з0-9-] + (\. [_ а-з0-9-] +) * @ [а-з0-9-] + (\. [а-з0-9-] +) * (\. [аз] {2,3}) $

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

ЕНЛАРГЕ

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

ЕНЛАРГЕ

Као што видимо, ово је веома користан ресурс када учимо да користимо регуларне изразе не само у Јава ако не на било ком језику.
Када сазнамо шта сваки од основних елемената синтаксе ради, сада морамо научити како можемо направити а потражите образац у склопу Јава, са овим можемо видети које методе, класе и пакети долазе у обзир када користимо регуларне изразе.
Прво што треба да знамо је да су све ове помоћне услуге у пакету јава.утил.регек, па да бисмо радили ове примере морамо укључити овај пакет на почетак наших часова.
Када се горе наведено уради, можемо тестирати образац на следећи начин:
 иф (оурСтринг.матцхес (оурЕкпрессион)) {// Ако се овде подудара извршавамо код} 

Видимо да користимо метод утакмице (), ово ће оценити низ знакова према регуларном изразу и вратити истина или лажно, у случају да низ знакова одговара узорку или не.
Ова врста употребе је добра у малим валидацијама, међутим, ако ћемо користити понављајућу валидацију, то јест, појављиваће се много пута у нашем програму, најбоље је направити малу рутину или класу која нам омогућава да проценимо низ параметарског облика, односно рутине или методе која нам омогућава да унесемо низ и вратимо тачно или нетачно, већ упоређујући са одређеним обрасцем.
У следећем програму ћемо тестирати мали образац и проценићемо га у односу на неколико низова, а програм ће нам рећи који од њих ради. утакмица, то јест, који се подудара, а који не, да видимо код, а затим ћемо видети како то функционише:
 импорт јава.утил.регек. *; јавна класа ТестПаттернс {публиц статиц воид маин (Стринг [] аргв) {Стринг паттерн = "К [у] \ д + \."; Стринг [] инпут = {"КА777. Је идентификатор нашег производа.", "Куацк, Куацк, Куацк!" }; Паттерн п = Паттерн.цомпиле (паттерн); фор (Стринг ин: инпут) {боолеан фоунд = п.матцхер (ин) .лоокингАт (); Систем.оут.принтлн ("'" + паттерн + "'" + (фоунд? "Матцхес '": "доес нот матцх'") + ин + "'"); }}} 

Овде видимо како прво морамо да увозимо пакет који је наведен на почетку овог одељка, како бисмо на овај начин добили функционалности претраживања помоћу регуларних израза. Затим израђујемо образац који ћемо користити као наш програм, у овом случају то је узорак који одговара слову „П"Онда мора имати било који знак осим слова"или”И мора се завршити тачком. Затим састављамо наш образац користећи методу саставити и можемо га користити за прављење шибица. Коначно, ако се узорак подудара, штампа се са речју утакмица у супротном штампамо не поклапа се.
Погледајмо на следећој слици како ово изгледа када покренемо програм:

ЕНЛАРГЕ

Затим бележимо, као што је објашњено, први низ или ланац ако се подудара, али други не, и ради даље референце постављамо образац по коме треба извршити поређење.
Сада ћемо извести напреднији пример, идентификоваћемо који део нашег низа се подудара, што је веома корисно када вршимо текстуалну претрагу, јер бисмо овим могли да истакнемо подударања онога што корисник унесе.
За ово ћемо користити исту базу нашег претходног програма са неким изменама, да видимо код, а затим објашњење:
 импорт јава.утил.регек. *; јавна класа Подударање {публиц статиц воид маин (Стринг [] аргв) {Стринг паттерн = "К [у] \ д + \."; Паттерн р = Паттерн.цомпиле (паттерн); Стринг тект = "ИД је: КВ990. Крај теста!"; Матцхер м = р.матцхер (текст); иф (м.финд ()) {Систем.оут.принтлн (паттерн + "одговара \" " + м.гроуп (0) +" \ "унутар \" " + тект +" \ ""); } елсе {Систем.оут.принтлн ("Нема подударања"); }}} 

Још једном видимо како започињемо наш програм, укључујући пакет јава.утил.регек. *. Затим користимо исти образац из претходног програма и компајлирамо га методом саставити, занимљивост долази сада, користили смо методу подударање () да лоцира подударање, а затим методом нађи () и метода група () можемо извући тачно оно што се подудара, на крају направимо одговарајуће отиске екрана. Хајде да видимо како наш програм сада изгледа:

ЕНЛАРГЕ

Тако видимо како смо успели да изолујемо реч која заиста одговара обрасцу који смо уредили за поређење редовна фраза.
Једна од најчешће коришћених апликација је на форме, где можемо вршити валидацију е -поште, бројеве телефона, кредитне картице, лозинке, ИП адресе, корисничка имена, поштанске бројеве па чак и потврдити да су све наше ознаке у нашем ХТМЛ документу исправно затворене, што нам даје могућност постизања веће сигурности у обради текста који уносе корисници.
Али не само у валидацијама у пољима обрасца, као што смо приметили у последњем примеру, то такође можемо учинити дуге текстуалне претраге По одређеном обрасцу, помоћу њега можемо систематски претраживати врло сложене текстуалне документе и тако уштедети много времена, једноставно писањем малог програма.
Овим смо завршили овај водич, научили смо како можемо прећи од различитих елемената за изражавање ситуација у нашим обрасцима до ефикасног прављења одговарајућих поређења текста или знакова које желимо да проценимо, све то захваљујући регуларни изрази. Ове евалуације су прилично брзе захваљујући оптимизацијама које језик ради у методама које нам нуди, па су врло погодне за изградњу интерфејса где морамо да претражимо и потврдимо текст који корисник унесе.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave