Јава Регек - шта су регуларни изрази и како се користи?



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

Издвајање или валидација података важан је аспект сваког програмског језика. Један од најпопуларнијих начина за проверу ваљаности података је коришћење регуларних израза. користи оверегуларни изрази за описивање обрасца ликова. Овај чланак о Јава Регек ће навести различите методе употребе израза у следећем низу:

Хајде да почнемо!





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

ДО Регуларни израз је низ знакова који граде образац претраживања. Када претражујете податке у тексту, можете користити овај образац претраживања да бисте описали оно што тражите.

Регуларни изрази - Јава Регек - Едурека



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

Шта је Јава Регек?

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

Постоје различити начини коришћења Јава Регек-а. Кренимо напред и погледајте различите изразе.



Матцхер Цласс

Ова класа се користи за извођење операција подударања на секвенци знакова. Испод табеле су представљени разни методи класе Матцхер.

Метод Опис
логичка поклапања () Тестира да ли се дати регуларни израз подудара са шаблоном
боолеан финд () Користи се за проналажење следећег израза који одговара обрасцу
логичко проналажење (инт старт) Претражује следећи израз који се подудара са узорком са датог почетног броја
Низовна група () Користи се за враћање подударања подсеквенце
инт старт () Враћа почетни индекс подударне подсеквенце
Намеравам() Враћа индекс завршетка подударне подсеквенце
инт гроупЦоунт () Даје укупан број подударности подударања

Паттерн Цласс

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

Метод Опис
статичка компилација образаца (Стринг регек) Компајлира задати регуларни израз и враћа инстанцу Паттерн
Поклапа се (подударање ЦхарСекуенце) Користи се за стварање подударања које одговара датом уносу са узорком
статичка логичка поклапања (регуларни израз низа, унос ЦхарСекуенце) Ради као комбинација метода компајлирања и подударања. Компајлише регуларни израз и подудара дати унос са узорком
Стринг [] сплит (ЦхарСекуенце инпут) Користи се за поделу датог улазног низа око подударања датог узорка
Узорак низа () Помаже да се врати образац регуларног израза

Узмимо сада мали пример да бисмо разумели како се напише регуларни израз.

импорт јава.утил.регек. * јавна класа РегекЕкампле {публиц статиц воид маин (Стринг [] аргс) {Паттерн паттерн = Паттерн.цомпиле ('. кк.') Матцхер матцхер = паттерн.матцхер ('АккБ') Систем.оут .принтлн ('Низ се подудара са датим регуларним изразом - + матцхер.матцхес ())}}

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

Излаз:
истина

Сада да видимо још неколико категорија Јава регуларних израза.

Класа регуларних израза

Испод табеле представљена је различита комбинација класе знакова.

Класа карактераОпис
[абц] а, б или ц (једноставна класа)
[^ абц] Било који знак осим а, б или ц (негација)
[а-зА-З] а до з или А до З, укључујући (опсег)
[а-д [м-п]] од а до д или од м до п: [а-дм-п] (унија)
[а-з && [деф]] д, е или ф (раскрсница)
[а-з && [^ бц]] од а до з, осим за б и ц: [ад-з] (одузимање)
[а-з && [^ м-п]] а до з, а не м до п: [а-лк-з] (одузимање)

Пример:

импорт јава.утил.регек. * јавна класа ЦхарацтерЕкампле {публиц статиц воид маин (Стринг аргс []) {// фалсе (не к или и или з) Систем.оут.принтлн (Паттерн.матцхес ('[киз]', 'вбцд')) // труе (међу к или и или з) Систем.оут.принтлн (Паттерн.матцхес ('[киз]', 'к')) // фалсе (к и и долази више пута) Систем .оут.принтлн (Паттерн.матцхес ('[киз]', 'ккиииииз'))}}

Регек квантификатори

Квантификатори одређују број појављивања знакова. Испод табеле су представљени разни квантификатори.

РегекОпис
ИКС? Кс се јавља једном или никако
Кс + Кс се јавља једном или више пута
ИКС * Кс се јавља нула или више пута
Кс {н} Кс се јавља само н пута
Кс {н,} Кс се јавља н или више пута
Кс и З} Кс се јавља најмање и пута, али мање од з пута

Пример:

импорт јава.утил.регек. * јавни разред Пример {публиц статиц воид маин (Стринг аргс []) {Систем.оут.принтлн ('? куантифиер ....') // (а или и или з долази једном) Систем.оут.принтлн (Паттерн.матцхес ('[аиз]?', 'А')) // оутпут: труе Систем.оут.принтлн (Паттерн.матцхес ('[аиз]?', 'Ааа')) / / (аи и з долази више пута) Систем.оут.принтлн (Паттерн.матцхес ('[аиз]?', 'аиииизз')) // оутпут: фалсе // (а долази више пута) Систем. оут.принтлн (Паттерн.матцхес ('[аиз]?', 'амнта')) // оутпут: фалсе // (а или и или з морају доћи једном) Систем.оут.принтлн (Паттерн.матцхес ('[ аиз]? ',' аи ')) // излаз: фалсе Систем.оут.принтлн (' + квантификатор .... ') // (а или и или з једном или више пута) Систем.оут.принтлн (образац .матцхес ('[аиз] +', 'а')) // оутпут: труе // (а долази више пута) Систем.оут.принтлн (Паттерн.матцхес ('[аиз] +', 'ааа' )) // оутпу: труе // (а или и или з долази више пута) Систем.оут.принтлн (Паттерн.матцхес ([амн] + ',' ааииизз ')) // оутпут: труе // (з и т се не подударају са узорком) Систем.оут.принтлн (Пат терн.матцхес ('[аиз] +', 'ааммта')) // оутпут: фалсе Систем.оут.принтлн ('* квантификатор ....') // (а или и или з могу доћи нула или више пута ) Систем.оут.принтлн (Паттерн.матцхес ('[аиз] *', 'аиииза')) // излаз: тачно}}

У основи, тражиће одговарајући квантификатор и поклапа се са резултатима претраге.

Регек метахарактери

Метазнакови регуларног израза раде као кратки кодови. Погледајмо доњу табелу да бисмо разумели разне типове метазнака.

ц ++ помоћу простора имена
РегекОпис
. То може бити било који знак (може и не мора одговарати терминатору)
д Представља било које цифре, краће од [0-9]
Д. Представља било коју нецифрену скраћеницу од [^ 0-9]
с Представља било који размак, кратак назив [тнк0Бфр]
С. То може бити знак који није размак, скраћеница од [^ с]
у То може бити знак речи, скраћеница од [а-зА-З_0-9]
ИН Представља било који знак који није реч, скраћеница од [^ в]
б Представља границу речи
Б. То је граница која није реч

Пример:

импорт јава.утил.регек. * јавна класа МетацхарЕкампле {публиц статиц воид маин (Стринг аргс []) {// д значи цифра Систем.оут.принтлн ('метазнакови д ....') // (не-цифра) Систем.оут.принтлн (Паттерн.матцхес ('д', 'абц')) // Излаз: фалсе // (цифра и долази једном) Систем.оут.принтлн (Паттерн.матцхес ('д', '1') ) // Излаз: тачно // (цифра, али долази више пута) Систем.оут.принтлн (Паттерн.матцхес ('д', '4443')) // Излаз: фалсе // (цифра и знак) Систем.оут .принтлн (Паттерн.матцхес ('д', '323абц')) // Излаз: фалсе // Д значи нецифрени Систем.оут.принтлн ('метазнакови Д ....') // (нецифрени, али долази више пута) Систем.оут.принтлн (Паттерн.матцхес ('Д', 'абц')) // Излаз: фалсе // То је цифра Систем.оут.принтлн (Паттерн.матцхес ('Д', '1 ')) // Излаз: нетачно Систем.оут.принтлн (Паттерн.матцхес (' Д ',' 4443 ')) // Излаз: фалсе // (цифра и знак) Систем.оут.принтлн (Паттерн.матцхес (' Д ',' 323абц ')) // Излаз: фалсе // (нецифрен и долази једном) Систем.оут.принтлн (Паттерн.матцхес (' Д ',' м ')) // Излаз: труе Систем.оут .пр интлн ('метазнакови Д са квантификатором ....') // (нецифрени и могу доћи 0 или више пута) Систем.оут.принтлн (Паттерн.матцхес ('Д *', 'абц')) // Излаз : истина } }

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

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

Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог чланка „Јава Регек“ и јавићемо вам се што је пре могуће.