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

В Java , Regex или Regular Expression е интерфейс на приложна програма, който помага при дефинирането на модел за търсене, манипулиране и редактиране на низове. Редовните изрази на Java се използват широко при валидиране на пароли и имейли. Тези изрази се предоставят от пакета java.util.regex и се състоят от 1 интерфейс и 3 класа.

Трите класа са:

  1. Модел: Помага при дефиниране на модели.
  2. Матч: Използването на модели помага за извършване на мачови операции.
  3. PatternSyntaxException: Помага при посочване на синтаксисна грешка.

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

Синтаксис на регулярно изразяване в Java

Сега нека да видим как да пишем редовен израз в Java с помощта на програма.

Код:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
) )

изход:

Често използвани методи в регулярни изрази

Има 3 често използвани метода в регулярни изрази. Те са,

1. Методи за индексиране

Методите за индекси предлагат стойности на индекса, които помагат точно да се покаже къде е намерено съвпадението в низ, даден като вход.

метод описание
старт ()Началният индекс на предишния мач се връща.
старт (int група)Като се има предвид предишната операция за съвпадение на групата, последствията се улавят и връщат.
край()Отместване след съвпадение с последния символ се връща.
Край (int група)Като се има предвид предишната операция за съвпадение на групата, следването се улавя и компенсира след връщане на последния върнат символ.

2. Методи на изследване

Методите на проучване проверяват низа, даден като вход и се връща булева стойност, показваща дали шаблонът е намерен или не.

метод описание
гледам към()Съпоставете последователността, дадена като вход, спрямо шаблона от началото на региона.
намирам()Намира следващото подреждане на последователността, дадена като вход спрямо шаблона от началото на региона.
намери (int start)Възстановява съвпадетеля и след това намира следващото подреждане на последователността, дадена като вход спрямо шаблона от указания индекс.
съвпадения ()Съответства на съдържанието спрямо шаблона.

3. Методи за подмяна

Методи, които се използват за замяна на текст в низ.

метод описание
appendReplacement (StringBuffer s, Смяна на низа)Ще бъде изпълнена стъпка за добавяне и замяна на нетерминала.
appendTail (StringBuffer s)Ще бъде изпълнена стъпка за добавяне и замяна на терминала.
substituAll (Смяна на низове)Заменете всички последователности на последователността, дадена като вход, която съвпада с шаблона, с заместващ низ.
quoteReplacement (Низ s)Буквален заместващ низ ще бъде върнат за споменатия низ.
substituFirst (Смяна на струните)Заменете първото подреждане на последователността, дадено като вход, което съответства на шаблона със заместващ низ.

Как да дефинираме регулярна експресия в Java?

Има няколко начина, по които може да се определи редовен израз. Те са:

1. Литература

Да предположим, че низ „хай” трябва да се търси в текст „хай”. Може да се направи с помощта на синтаксиса.

Pattern.matches("hai", "hai")

2. Класове на героите

Той съответства на всеки един символ в текста, даден като вход, срещу множество разрешени знаци в класа на знаците. По-долу са различните конструкти на класа.

Характер клас обяснение
(PQR)Съответства на текста, ако съдържа или p, q или r и трябва да бъде само веднъж.
(PQR)обозначава отрицанието и поради това тук се вземат единични символи, с изключение на p, q или r.
(А-ZA-Z)a до z и от A до Z се считат.
(AD (PS))a до d, или p до s.
(А-дм-р)Съюз на двата диапазона.
(Я && ​​(PQR))a до z и (p, q или r).
(Я && ​​(PQ))a до z и също така, p, q не се считат.
(AD-Z)Извършва изваждането.
(Я && ​​(тр))a до z, а не m до p.

3. Метахарактори

Metacharacters действат като къси кодове в регулярния израз. По-долу са някои от често използваните метасимволи.

Редовна експресия обяснение
Всяка цифра от 0 до 9. Може да се запише и като (0-9).
Всяка нецифрена стойност от 0 до 9. Може да се запише и като (0-9).
Символ на бялото пространство или (\ t \ n \ x0B \ f \ r).
Символ без пробел или (\ s).
\ wWord символ или (a-zA-Z_0-9).
\ WГерой без думи или (\ w).
\ бГраница на думата.
\ BГраница без думи.

4. Квантори

Квантификаторите споменават броя на появата на всеки символ, за да съответства на низа.

Редовна експресия обяснение
а?Възниква веднъж или изобщо не.
A *А възниква 0 или повече пъти.
A +A възниква 1 или повече пъти.
А (N)A се случва точно n пъти.
А (п)A възниква n или повече от това.
А (п, т)A се среща най-малко n пъти, но не трябва да е повече от m пъти.

Как да създадете редовен израз в Java?

Сега, нека да видим java програма с гореспоменатите редовни изрази.

Код:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("(Hh)ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("(aA)nn|(jJ)ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^(^\\d).*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^(^\\d).*", "anna9448")); //True
)
)

изход:

заключение

Java Regular Expressions се използват широко за приложения в реално време като проверка на парола и имейл. Тези изрази са API, които определят модели и предлагат търсене, редактиране и няколко други операции в низ.

Препоръчителни статии

Това е ръководство за регулярни изрази в Java. Тук обсъждаме как да създаваме, как да дефинираме и често използвани методи на регулярни изрази в Java. Можете също да разгледате следните статии, за да научите повече -

  1. Топ 3 най-добри компилатори в Java
  2. Редовни изрази в JavaScript - Свойства и методи
  3. Разработка на Java приложения
  4. Методи на масив в Java с примери
  5. Функции на Regex в Python (пример)