Какво представляват регулярните изрази в Java?
В Java , Regex или Regular Expression е интерфейс на приложна програма, който помага при дефинирането на модел за търсене, манипулиране и редактиране на низове. Редовните изрази на Java се използват широко при валидиране на пароли и имейли. Тези изрази се предоставят от пакета java.util.regex и се състоят от 1 интерфейс и 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). |
\ w | Word символ или (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. Можете също да разгледате следните статии, за да научите повече -
- Топ 3 най-добри компилатори в Java
- Редовни изрази в JavaScript - Свойства и методи
- Разработка на Java приложения
- Методи на масив в Java с примери
- Функции на Regex в Python (пример)