logo

Јава Регек

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

Широко се користи за дефинисање ограничења стрингова као што су лозинка и валидација е-поште. Након што научите водич за Јава регек, моћи ћете да тестирате своје регуларне изразе помоћу алатке Јава Регек Тестер.

Јава Регек АПИ пружа 1 интерфејс и 3 класе у јава.утил.регек пакет.

јава.утил.регек пакет

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

  1. Интерфејс МатцхРесулт
  2. Матцхер цласс
  3. Паттерн цласс
  4. ПаттернСинтакЕкцептион класа
Јава Регек АПИ

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

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

Не.МетодОпис
1боолеан матцхес()тестирати да ли се регуларни израз поклапа са шаблоном.
2боолеан финд()проналази следећи израз који одговара шаблону.
3боолеан финд(инт старт)проналази следећи израз који одговара шаблону из датог почетног броја.
4Стринг гроуп()враћа подниз који се подудара.
5инт старт()враћа почетни индекс подударног низа.
6Намеравам()враћа завршни индекс подударног низа.
7инт гроупЦоунт()враћа укупан број подударног низа.

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

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

Не.МетодОпис
1компајлирање статичког узорка (регекс низа)компајлира дати регуларни израз и враћа инстанцу узорка.
2Упаривач подударања (унос знаковне секвенце)креира упаривач који одговара датом улазу са шаблоном.
3статичка логичка подударања (редовни израз стринга, унос секвенце знакова)Ради као комбинација метода компајлирања и упаривања. Он компајлира регуларни израз и поклапа дати унос са шаблоном.
4Стринг[] сплит (унос низа знакова)дели дати улазни низ око подударања датог узорка.
5Образац низа()враћа образац регуларног израза.

Пример Јава регуларних израза

Постоје три начина за писање примера редовног израза у Јави.

 import java.util.regex.*; public class RegexExample1{ public static void main(String args[]){ //1st way Pattern p = Pattern.compile('.s');//. represents single character Matcher m = p.matcher('as'); boolean b = m.matches(); //2nd way boolean b2=Pattern.compile('.s').matcher('as').matches(); //3rd way boolean b3 = Pattern.matches('.s', 'as'); System.out.println(b+' '+b2+' '+b3); }} 
Тестирајте одмах

Излаз

 true true true 

Регуларни израз . Пример

Тхе . (тачка) представља један знак.

 import java.util.regex.*; class RegexExample2{ public static void main(String args[]){ System.out.println(Pattern.matches('.s', 'as'));//true (2nd char is s) System.out.println(Pattern.matches('.s', 'mk'));//false (2nd char is not s) System.out.println(Pattern.matches('.s', 'mst'));//false (has more than 2 char) System.out.println(Pattern.matches('.s', 'amms'));//false (has more than 2 char) System.out.println(Pattern.matches('..s', 'mas'));//true (3rd char is s) }} 
Тестирајте одмах

Класе редовних знакова

Не.Цхарацтер ЦлассОпис
1[абц]а, б или ц (једноставна класа)
2[^абц]Било који знак осим а, б или ц (негација)
3[а-зА-З]од а до з или од А до З, укључујући (опсег)
4[а-д[м-п]]од а до д, или од м до п: [а-дм-п] (унија)
5[а-з&&[деф]]д, е или ф (пресек)
6[а-з&&[^бц]]од а до з, осим за б и ц: [ад-з] (одузимање)
7[а-з&&[^м-п]]а до з, а не м до п: [а-лк-з](одузимање)

Класе знакова регуларног израза Пример

 import java.util.regex.*; class RegexExample3{ public static void main(String args[]){ System.out.println(Pattern.matches('[amn]', 'abcd'));//false (not a or m or n) System.out.println(Pattern.matches('[amn]', 'a'));//true (among a or m or n) System.out.println(Pattern.matches('[amn]', 'ammmna'));//false (m and a comes more than once) }} 
Тестирајте одмах

Квантификатори редовних израза

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

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

Класе карактера регуларног израза и пример квантификатора

 import java.util.regex.*; class RegexExample4{ public static void main(String args[]){ System.out.println('? quantifier ....'); System.out.println(Pattern.matches('[amn]?', 'a'));//true (a or m or n comes one time) System.out.println(Pattern.matches('[amn]?', 'aaa'));//false (a comes more than one time) System.out.println(Pattern.matches('[amn]?', 'aammmnn'));//false (a m and n comes more than one time) System.out.println(Pattern.matches('[amn]?', 'aazzta'));//false (a comes more than one time) System.out.println(Pattern.matches('[amn]?', 'am'));//false (a or m or n must come one time) System.out.println('+ quantifier ....'); System.out.println(Pattern.matches('[amn]+', 'a'));//true (a or m or n once or more times) System.out.println(Pattern.matches('[amn]+', 'aaa'));//true (a comes more than one time) System.out.println(Pattern.matches('[amn]+', 'aammmnn'));//true (a or m or n comes more than once) System.out.println(Pattern.matches('[amn]+', 'aazzta'));//false (z and t are not matching pattern) System.out.println('* quantifier ....'); System.out.println(Pattern.matches('[amn]*', 'ammmna'));//true (a or m or n may come zero or more times) }} 
Тестирајте одмах

Регек Метацхарацтерс

Метазнакови регуларног израза раде као кратки кодови.

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

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

 import java.util.regex.*; class RegexExample5{ public static void main(String args[]){ System.out.println('metacharacters d....');\d means digit System.out.println(Pattern.matches('\d', 'abc'));//false (non-digit) System.out.println(Pattern.matches('\d', '1'));//true (digit and comes once) System.out.println(Pattern.matches('\d', '4443'));//false (digit but comes more than once) System.out.println(Pattern.matches('\d', '323abc'));//false (digit and char) System.out.println('metacharacters D....');\D means non-digit System.out.println(Pattern.matches('\D', 'abc'));//false (non-digit but comes more than once) System.out.println(Pattern.matches('\D', '1'));//false (digit) System.out.println(Pattern.matches('\D', '4443'));//false (digit) System.out.println(Pattern.matches('\D', '323abc'));//false (digit and char) System.out.println(Pattern.matches('\D', 'm'));//true (non-digit and comes once) System.out.println('metacharacters D with quantifier....'); System.out.println(Pattern.matches('\D*', 'mak'));//true (non-digit and may come 0 or more times) }} 
Тестирајте одмах

Питање регуларног израза 1

 /*Create a regular expression that accepts alphanumeric characters only. Its length must be six characters long only.*/ import java.util.regex.*; class RegexExample6{ public static void main(String args[]){ System.out.println(Pattern.matches('[a-zA-Z0-9]{6}', 'arun32'));//true System.out.println(Pattern.matches('[a-zA-Z0-9]{6}', 'kkvarun32'));//false (more than 6 char) System.out.println(Pattern.matches('[a-zA-Z0-9]{6}', 'JA2Uk2'));//true System.out.println(Pattern.matches('[a-zA-Z0-9]{6}', 'arun$2'));//false ($ is not matched) }} 

Тестирајте одмах

Питање регуларног израза 2

 /*Create a regular expression that accepts 10 digit numeric characters starting with 7, 8 or 9 only.*/ import java.util.regex.*; class RegexExample7{ public static void main(String args[]){ System.out.println('by character classes and quantifiers ...'); System.out.println(Pattern.matches('[789]{1}[0-9]{9}', '9953038949'));//true System.out.println(Pattern.matches('[789][0-9]{9}', '9953038949'));//true System.out.println(Pattern.matches('[789][0-9]{9}', '99530389490'));//false (11 characters) System.out.println(Pattern.matches('[789][0-9]{9}', '6953038949'));//false (starts from 6) System.out.println(Pattern.matches('[789][0-9]{9}', '8853038949'));//true System.out.println('by metacharacters ...'); System.out.println(Pattern.matches('[789]{1}\d{9}', '8853038949'));//true System.out.println(Pattern.matches('[789]{1}\d{9}', '3853038949'));//false (starts from 3) }} 
Тестирајте одмах

Пример Јава Регек Финдер-а

 import java.util.regex.Pattern; import java.util.Scanner; import java.util.regex.Matcher; public class RegexExample8{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while (true) { System.out.println('Enter regex pattern:'); Pattern pattern = Pattern.compile(sc.nextLine()); System.out.println('Enter text:'); Matcher matcher = pattern.matcher(sc.nextLine()); boolean found = false; while (matcher.find()) { System.out.println('I found the text '+matcher.group()+' starting at index '+ matcher.start()+' and ending at index '+matcher.end()); found = true; } if(!found){ System.out.println('No match found.'); } } } } 

Излаз:

 Enter regex pattern: java Enter text: this is java, do you know java I found the text java starting at index 8 and ending at index 12 I found the text java starting at index 26 and ending at index 30