Јава Регек

Јава Регек

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

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

Јава Регек АПИ пружа 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