Що таке регулярні вирази на 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. Методи покажчика

Методи індексу пропонують значення індексу, які допомагають точно показувати, де збіг був знайдений у рядку, заданому як вхідний.

Метод Опис
start ()Повертається індекс старту попереднього матчу.
старт (int група)Зважаючи на попередню операцію групи, підпорядкування захоплюється та повертається.
кінець ()Зсув після узгодження останнього символу повертається.
Кінець (група int)Зважаючи на попередню операцію матчу групи, підпорядкування фіксується та компенсується після повернення останнього символу, що повертається.

2. Методи дослідження

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

Метод Опис
дивлячись на()Зіставити послідовність, задану як введення, проти шаблону з початку області.
знайти ()Знаходить наступну послідовність послідовності, заданої як введення проти шаблону з початку області.
знайти (int start)Скидає провідник і потім знаходить наступну послідовність послідовності, заданої як вхід, проти шаблону із зазначеного індексу.
сірники ()Зіставляє вміст проти шаблону

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

Методи, які використовуються для заміни тексту в рядку.

Метод Опис
appendReplacement (StringBuffer s, Заміна рядка)Буде здійснено нетермінальний крок додавання та заміни.
appendTail (StringBuffer s)Буде реалізовано етап додавання та заміна терміналу.
substituAll (Заміна рядків)Замініть всю послідовність послідовності, подану як вхід, що відповідає малюнку, рядком заміни.
quoReplacement (рядки)Буквальний рядок заміни буде повернутий для згаданого рядка.
substituFirst (Заміна рядка)Замініть першу послідовність послідовності, подану як вхідну, яка відповідає шаблону рядком заміни.

Як визначити регулярне вираження на Java?

Існує кілька способів, за допомогою яких можна визначити регулярний вираз. Вони є:

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

Припустимо, рядок "hai" потрібно шукати в тексті "hai". Це можна зробити за допомогою синтаксису.

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

2. Класи персонажів

Він відповідає кожному символу в тексті, поданому як введення, проти кількох дозволених символів у класі символів. Далі наведені різні конструкти класів.

Клас персонажів Пояснення
(pqr)Відповідає тексту, якщо він містить p, q або r, і він повинен бути лише один раз.
(pqr)позначає заперечення і завдяки цьому тут приймаються окремі символи, крім p, q або r.
(a-zA-Z)a до z і A до Z вважаються.
(реклама (ps))a до d або p до s.
(a-dm-p)Союз обох діапазонів.
(az && (pqr))a до z і (p, q або r).
(az && (pq))a до z і також p, q не враховуються.
(ad-z)Виконує віднімання.
(az && (mp))a до z і не m до p.

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

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

Регулярна виразність Пояснення
\ dБудь-яка цифра від 0 до 9. Його також можна записати як (0-9).
\ DБудь-яка нецифрова цифра від 0 до 9. Його також можна записати як (0-9).
\ сСимвол пробілу або (\ t \ n \ x0B \ f \ r).
\ SНепробільний символ або (\ s).
\ шСимвол слова або (a-zA-Z_0-9).
\ ШНеслівний символ або (\ w).
\ bМежі слова.
\ BМежа без слів.

4. Квантори

Квантованці згадують кількість зустрічань кожного символу, щоб вони відповідали рядку.

Регулярна виразність Пояснення
а?Трапляється один раз або взагалі немає.
A *A виникає 0 і більше разів.
A +A виникає 1 або більше разів.
A (n)A трапляється рівно n разів.
A (n, )A виникає n або більше, ніж це.
A (n, m)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 широко використовуються для додатків у режимі реального часу, таких як підтвердження пароля та електронної пошти. Ці вирази - API, які визначають шаблони та пропонують пошук, редагування та кілька інших операцій у рядку.

Рекомендовані статті

Це посібник з регулярних виразів на Java. Тут ми обговорюємо, як створити, як визначити та загальновживані методи регулярних виразів у java. Ви також можете переглянути наступні статті, щоб дізнатися більше -

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