Что такое регулярные выражения в Java?

В Java Regex или Regular Expression - это интерфейс прикладных программ, который помогает в определении шаблона для поиска, обработки и редактирования строк. Регулярные выражения Java широко используются при проверке паролей и электронных писем. Эти выражения предоставляются пакетом java.util.regex и состоят из 1 интерфейса и 3 классов.

Три класса:

  1. Шаблон: помогает в определении шаблонов.
  2. Matcher: Использование шаблонов, помогает в выполнении операций сопоставления.
  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, String замена)Будет реализован шаг нетерминального добавления и замены.
appendTail (StringBuffer s)Шаг добавления и замены терминала будет реализован.
replaceAll (замена строки)Замените всю подпоследовательность последовательности, заданной в качестве входных данных, которая соответствует шаблону, строкой замены.
quoteReplacement (String s)Для указанной строки будет возвращена литеральная строка замены.
replaceFirst (замена строки)Замените первую подпоследовательность последовательности, заданной в качестве входных данных, которая соответствует шаблону строкой замены.

Как определить регулярное выражение в Java?

Существует несколько способов определения регулярного выражения. Они есть:

1. Литералы

Предположим, что строка «hai» должна быть найдена в тексте «hai». Это можно сделать с помощью синтаксиса.

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

2. Классы персонажей

Он сопоставляет каждый отдельный символ в тексте, заданный в качестве ввода, с несколькими разрешенными символами в классе символов. Ниже приведены различные классовые конструкции.

Класс персонажа объяснение
(PQR)Соответствует тексту, если он содержит p, q или r и должен быть только один раз.
(PQR)обозначает отрицание и поэтому здесь берется один символ, кроме p, q или r.
(A-Za-Z)А до Я и А до Я рассматриваются.
(Объявление (пс))от a до d или от p до s.
(А-дм-р)Союз обоих диапазонов.
(Аг && (PQR))от а до я и (р, q или r).
(Аг && (рд))от а до я, а также р, q не рассматриваются.
(Ад-г)Выполняет вычитание.
(Аг && (тр))от а до я, а не от м до р.

3. Метасимволы

Метасимволы действуют как шорткоды в регулярном выражении. Ниже приведены некоторые из часто используемых метасимволов.

Регулярное выражение объяснение
\ dЛюбая цифра от 0 до 9. Она также может быть записана как (0-9).
\ DЛюбая не цифра от 0 до 9. Она также может быть записана как (0-9).
\ sПробельный символ или (\ t \ n \ x0B \ f \ r).
\ SНе пробельный символ или (\ s).
\ шСимвол слова или (a-zA-Z_0-9).
\ WНесловарный символ или (\ w).
\ бГраница слова.
\ BНесловая граница.

4. Квантификаторы

Квантификаторы указывают количество вхождений каждого символа для сопоставления со строкой.

Регулярное выражение объяснение
стоит?Происходит один раз или нет вообще.
A *А встречается 0 или более раз.
A +А встречается 1 или более раз.
А (п)А встречается ровно n раз.
А (п, )А происходит п или более того.
А (п, т)А встречается не менее 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 широко используются для приложений реального времени, таких как проверка пароля и электронной почты. Эти выражения являются API-интерфейсами, которые определяют шаблоны и предлагают поиск, редактирование и ряд других операций в строке.

Рекомендуемые статьи

Это руководство по регулярным выражениям в Java. Здесь мы обсуждаем, как создавать, как определять и часто используемые методы регулярных выражений в Java. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

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