Что такое регулярные выражения в Java?
В Java Regex или Regular Expression - это интерфейс прикладных программ, который помогает в определении шаблона для поиска, обработки и редактирования строк. Регулярные выражения Java широко используются при проверке паролей и электронных писем. Эти выражения предоставляются пакетом java.util.regex и состоят из 1 интерфейса и 3 классов.
Три класса:
- Шаблон: помогает в определении шаблонов.
- Matcher: Использование шаблонов, помогает в выполнении операций сопоставления.
- 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. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- Топ-3 лучших компиляторов на Java
- Регулярные выражения в JavaScript - свойства и методы
- Разработка Java-приложений
- Методы массива в Java с примерами
- Функции регулярных выражений в Python (пример)