Рубрики
Без рубрики

Учебник по регулярным выражениям Java | Регулярные выражения в Java

Регулярное выражение Java – это API, который используется для определения шаблона поиска или манипулирования строками. В этой статье также будет рассказано о различных классах регулярных выражений, предоставляемых Java.

Автор оригинала: Neha.

Извлечение или проверка данных является важным аспектом каждого языка программирования. Одним из наиболее популярных способов проверки данных является использование регулярных выражений. Java использует эти регулярные выражения для описания набора символов. В этой статье на Java Regex будут перечислены различные методы использования выражений.

Давайте начнем!

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

Регулярное выражение – это последовательность символов, которая создает шаблон поиска. При поиске данных в тексте вы можете использовать этот шаблон поиска для описания того, что вы ищете.

Регулярное выражение может быть одним символом или более сложным шаблоном. Его можно использовать для любого типа текстового поиска и операций замены текста. Шаблон регулярного выражения состоит из простых символов, таких как /abc/ , или комбинации простых и специальных символов, таких как /ab*c/ или /пример(d+).d*/ .

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

Регулярное выражение Java представляет собой API, который используется для определения шаблона для поиска или манипулирования строками . Он широко используется для определения ограничений на такие строки, как пароль и проверка электронной почты.

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

Класс Соответствия

Этот класс используется для выполнения операций сопоставления с последовательностью символов. В таблице ниже представлены различные методы класса Matcher.

Захватить. PNG

Класс Шаблонов

Класс шаблона-это скомпилированная версия регулярного выражения, которая используется для определения шаблона для механизма регулярных выражений.

Захватить. PNG

Теперь давайте рассмотрим небольшой пример, чтобы понять, как написать регулярное выражение.

import java.util.regex.*;
  public class RegexExample{
    public static void main (String[] args){
       Pattern pattern = Pattern.compile(".xx.");
       Matcher matcher = pattern.matcher("AxxB");
       System.out.println("String matches the given Regex - +matcher.matches());
   }
}

В этом случае внутренне он использует шаблон и сопоставитель Java классы регулярных выражений для обработки, но, очевидно, это уменьшает количество строк кода. Класс Pattern также содержит метод matches, который принимает регулярное выражение и входную строку в качестве аргумента и возвращает логический результат после их сопоставления. Таким образом, код отлично работает для сопоставления входных данных Строка с регулярным выражением в Java. Следовательно, вывод будет верным, как показано ниже.

Вывод: верно

Теперь давайте рассмотрим еще несколько категорий регулярных выражений Java.

Класс Символов Регулярного Выражения

В таблице ниже представлена комбинация различных классов символов.

Захватить. PNG

Пример:

import java.util.regex.*;
  public class CharacterExample{
    public static void main(String args[]){     
      //false (not x or y or z)
      System.out.println(Pattern.matches("[xyz]", "wbcd"));
      //true (among x or y or z)
      System.out.println(Pattern.matches("[xyz]", "x"));
      //false (x and y comes more than once)
      System.out.println(Pattern.matches("[xyz]", "xxyyyyyz"));
    }
}

Кванторы регулярных выражений

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

Захватить. PNG

Пример:

import java.util.regex.*;
   public class Example{
     public static void main(String args[]){
       System.out.println("? quantifier ....");

       //(a or y or z comes one time)
       System.out.println(Pattern.matches("[ayz]?", "a")); //output: true
       System.out.println(Pattern.matches("[ayz]?", "aaa")); 

       //(a y and z comes more than one time)
       System.out.println(Pattern.matches("[ayz]?", "ayyyyzz")); //output: false

       //(a comes more than one time)
       System.out.println(Pattern.matches("[ayz]?", "amnta")); //output: false

       //(a or y or z must come one time)
       System.out.println(Pattern.matches("[ayz]?", "ay")); //output: false 
       System.out.println("+ quantifier ....");

       //(a or y or z once or more times)
       System.out.println(Pattern.matches("[ayz]+", "a")); //output: true

       //(a comes more than one time)
       System.out.println(Pattern.matches("[ayz]+", "aaa")); //outpu: true

       //(a or y or z comes more than once)
       System.out.println(Pattern.matches([amn]+", "aayyyzz")); //output: true

       //(z and t are not matching pattern)
       System.out.println(Pattern.matches("[ayz]+", "aammta")); //output: false
       System.out.println("* quantifier ....");

       //(a or y or z may come zero or more times)
       System.out.println(Pattern.matches("[ayz]*", "ayyyza")); //output: true
    }
}

В принципе, он будет искать соответствующий квантор и будет соответствовать результату поиска.

Метасимволы регулярных выражений

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

Захватить. PNG

Пример:

import java.util.regex.*;
   public class MetacharExample{
     public static void main(String args[]){
       // d means digit
       System.out.println("metacharacters d...."); 
       //(non-digit)
       System.out.println(Pattern.matches("d", "abc"));//Output: false 

       //(digit and comes once)
       System.out.println(Pattern.matches("d", "1"));//Output: true 

       //(digit but comes more than once)
       System.out.println(Pattern.matches("d", "4443")); //Output: false

       //(digit and char)
       System.out.println(Pattern.matches("d", "323abc"));//Output: false
       //D means non-digit
       System.out.println("metacharacters D....");

       //(non-digit but comes more than once)
       System.out.println(Pattern.matches("D", "abc")); // Output: false

       //Its a Digit
       System.out.println(Pattern.matches("D", "1")); //Output: false 
       System.out.println(Pattern.matches("D", "4443")); //Output: false 

       // (digit and char)
       System.out.println(Pattern.matches("D", "323abc")); //Output: false
       //(non-digit and comes once)
       System.out.println(Pattern.matches("D", "m")); //Output: true 

       System.out.println("metacharacters D with quantifier....");
       //(non-digit and may come 0 or more times)
       System.out.println(Pattern.matches("D*", "abc")); //Output: true 

     }
}

Основываясь на вышеупомянутых условиях, он отобразит вывод. Вот как это работает. Итак, все это касалось различных типов регулярных выражений Java. На этом мы подходим к концу этой статьи. Надеюсь, вы нашли это информативным.

У вас есть к нам вопрос? Пожалуйста, упомяните об этом в разделе комментариев этой статьи “Регулярное выражение Java”, и мы свяжемся с вами как можно скорее.

Оригинал: “https://www.codementor.io/@nehavaidya/java-regex-tutorial-regular-expressions-in-java-x5d8cx3xt”