Java Regex - Какво представляват регулярните изрази и как да го използвам?



Java Regex е API, който се използва за дефиниране на модел за търсене или манипулиране на низове. Тази статия ще говори и за различни класове регулярни изрази, предоставени от Java.

Извличането или валидирането на данни е важен аспект на всеки програмен език. Един от най-популярните начини за валидиране на данни е чрез използване на регулярни изрази. използва тезирегулярни изрази, за да опишат модел на символи. Тази статия на Java Regex ще изброи различните методи за използване на изрази в следната последователност:

Да започваме!





Какво представляват регулярните изрази?

ДА СЕ Редовен израз е последователност от символи, която изгражда модел за търсене. Когато търсите данни в текст, можете да използвате този модел на търсене, за да опишете това, което търсите.

Регулярни изрази - Java Regex - Edureka



Регулярният израз може да бъде a единичен знак или по-сложен модел. Може да се използва за всякакъв вид операции за търсене на текст и замяна на текст. Моделът Regex се състои от прости знаци, като например / abc / , или комбинация от прости и специални знаци, като например / ab * c / или /пример(d+).d*/ .

Какво е Java Regex?

The Java Regex е API, който е използван за дефинирайте модел за търсене или манипулиране . Той се използва широко за дефиниране на ограничението за низове като валидиране на парола и имейл.

Има различни методи за използване на Java Regex. Така че нека продължим напред и да разгледаме различните изрази.



Клас на мач

Този клас се използва за извършване на операции по съвпадение на символна последователност. По-долу таблицата представя различни методи на клас Matcher.

Метод Описание
булеви съвпадения () Тества дали даденият регулярен израз съвпада с модела
булево намиране () Използва се за намиране на следващия израз, който съответства на модела
булево намиране (int start) Търси следващия израз, който съответства на шаблона от дадения стартов номер
Низова група () Използва се за връщане на съответстващата подпоследователност
int start () Връща началния индекс на съответстващата подпоследователност
int край () Връща крайния индекс на съответстващата подпоследователност
int groupCount () Връща общия брой на съответстващата подпоследователност

Клас на шаблона

Pattern Class е компилирана версия на регулярен израз, която се използва за дефиниране на шаблона за механизма за регулярни изрази.

Метод Описание
статична компилация на шаблон (String regex) Той компилира даденото регулярно изражение и връща екземпляра на шаблона
Съвпада мачове (вход CharSequence) Използва се за създаване на съвпадение, което съответства на дадения вход с модела
статични булеви съвпадения (String regex, CharSequence input) Той работи като комбинация от методи за компилиране и съвпадение. Той компилира регулярния израз и съответства на дадения вход с модела
Низ [] разделяне (вход CharSequence) Използва се за разделяне на дадения входен низ около съвпадения на даден модел
Струнен модел () Помага за връщане на шаблона за регулярно изражение

Сега нека вземем малък пример, за да разберем как да напишем регулярен израз.

импортиране на java.util.regex. * публичен клас RegexExample {публична статична невалидна основна (String [] аргументи) {Pattern pattern = Pattern.compile ('. xx.') Matcher matcher = pattern.matcher ('AxxB') System.out .println ('Низът съответства на дадения Regex - + matcher.matches ())}}

В този случай вътрешно той използва Pattern и Matcher Regex класове, за да извършат обработката, но очевидно,намалява кодовите редове. Класът Pattern също съдържа метод на съвпадения, който приема регулярния израз и въвеждащия String като аргумент и връща булев резултат след тяхното съвпадение. Така че кодът работи добре за съвпадение на въвеждането с регулярен израз в Java. Следователно изходът ще бъде верен, както е показано по-долу.

Изход:
вярно

Сега нека видим още няколко категории регулярни изрази на Java.

Клас на символи Regex

Таблицата по-долу представя различната комбинация от класове знаци.

Клас на героитеОписание
[abc] a, b или c (прост клас)
[^ abc] Всеки символ с изключение на a, b или c (отрицание)
[a-zA-Z] от a до z или от A до Z, включително (обхват)
[a-d [m-p]] от a до d или от m до p: [a-dm-p] (обединение)
[a-z && [def]] d, e или f (пресичане)
[a-z && [^ bc]] от a до z, с изключение на b и c: [ad-z] (изваждане)
[a-z && [^ m-p]] a до z, а не m до p: [a-lq-z] (изваждане)

Пример:

импортиране на java.util.regex. * публичен клас CharacterExample {public static void main (String args []) {// false (не x или y или z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (сред x или y или z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x и y идва повече от веднъж) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}

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

Кванторите определят броя на повторенията на даден символ. Под таблицата са представени различни квантори.

RegexОписание
Х? Х се появява веднъж или изобщо не се случва
X + X се появява веднъж или повече пъти
Х * X се среща нула или повече пъти
X {n} X се среща само n пъти
X {n,} X се появява n или повече пъти
X и Z} X се появява поне y пъти, но по-малко от z пъти

Пример:

import java.util.regex. * публичен клас Пример {public static void main (String args []) {System.out.println ('? quantifier ....') // (a или y или z идва еднократно) System.out.println (Pattern.matches ('[ayz]?', 'A')) // изход: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay и z идва повече от веднъж) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a идва повече от веднъж) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // изход: false // (a или y или z трябва да дойдат еднократно) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // изход: false System.out.println (' + квантор .... ') // (a или y или z веднъж или повече пъти) System.out.println (Pattern .matches ('[ayz] +', 'a')) // изход: true // (a идва повече от веднъж) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a или y или z идва повече от веднъж) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z и t не съответстват на модела) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // изход: невярно System.out.println ('* квантор ....') // (a или y или z може да дойде нула или повече пъти ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // изход: вярно}}

как да направите пакет в java -

По принцип той ще търси съответстващия квантор и съответства на резултата от търсенето.

Регекс метасимволи

Метасимволите на регулярния израз работят като къси кодове. Нека да разгледаме таблицата по-долу, за да разберем различните видове метасимволи.

RegexОписание
. Може да е всеки символ (може или не може да съвпада с терминатор)
д Представлява всякакви цифри, с изключение на [0-9]
д Представлява всяко нецифрено, съкратено за [^ 0-9]
с Представлява всеки празен знак, съкратено от [tnx0Bfr]
С Това може да е небел знак, съкратено от [^ s]
в Това може да е словен знак, съкратено от [a-zA-Z_0-9]
IN Представлява всеки недумов символ, съкратено от [^ w]
б Представлява граница на дума
Б. Това е недумова граница

Пример:

import java.util.regex. * публичен клас MetacharExample {public static void main (String args []) {// d означава цифра System.out.println ('metacharacters d ....') // (нецифрена) System.out.println (Pattern.matches ('d', 'abc')) // Изход: false // (цифра и идва веднъж) System.out.println (Pattern.matches ('d', '1') ) // Изход: вярно // (цифра, но идва повече от веднъж) System.out.println (Pattern.matches ('d', '4443')) // Изход: false // (цифра и символ) System.out .println (Pattern.matches ('d', '323abc')) // Изход: false // D означава нецифрено System.out.println ('metacharacters D ....') // (нецифрено, но идва повече от веднъж) System.out.println (Pattern.matches ('D', 'abc')) // Изход: false // Това е цифра System.out.println (Pattern.matches ('D', '1 ')) // Изход: false System.out.println (Pattern.matches (' D ',' 4443 ')) // Изход: false // (цифра и символ) System.out.println (Pattern.matches (' D ',' 323abc ')) // Изход: false // (нецифрено и идва веднъж) System.out.println (Pattern.matches (' D ',' m ')) // Изход: true System.out .pr intln ('метасимволи D с квантор ....') // (нецифрено и може да дойде 0 или повече пъти) System.out.println (Pattern.matches ('D *', 'abc')) // Изход : вярно } }

Въз основа на гореспоменатите условия той ще покаже изхода. Ето как работи И така, това беше всичко за различни видове Regex. С това стигнахме до края на тази статия. Азнадявам се, че ви е било информативно. Ако искате да научите повече, можете да разгледате нашата както добре.

Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Ние сме тук, за да ви помогнем във всяка стъпка по вашето пътуване, за да станете освен тези въпроси за интервю за Java, измислим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат Java Developer.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия за „Java Regex“ и ние ще се свържем с вас възможно най-скоро.