Учебники

Java Regex — Краткое руководство

Java Regex — Обзор

Java предоставляет пакет java.util.regex для сопоставления с шаблоном с регулярными выражениями. Регулярные выражения Java очень похожи на язык программирования Perl и очень просты в освоении.

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

Пакет java.util.regex в основном состоит из следующих трех классов:

  • Класс Pattern — Объект Pattern представляет собой скомпилированное представление регулярного выражения. Класс Pattern не предоставляет общедоступных конструкторов. Чтобы создать шаблон, вы должны сначала вызвать один из его открытых статических методов compile () , который затем вернет объект Pattern. Эти методы принимают регулярное выражение в качестве первого аргумента.

  • Класс Matcher — объект Matcher — это механизм, который интерпретирует шаблон и выполняет операции сопоставления с входной строкой. Как и класс Pattern, Matcher не определяет общедоступных конструкторов. Вы получаете объект Matcher, вызывая метод matcher () для объекта Pattern.

  • PatternSyntaxException — Объект PatternSyntaxException является непроверенным исключением, которое указывает на синтаксическую ошибку в образце регулярного выражения.

Класс Pattern — Объект Pattern представляет собой скомпилированное представление регулярного выражения. Класс Pattern не предоставляет общедоступных конструкторов. Чтобы создать шаблон, вы должны сначала вызвать один из его открытых статических методов compile () , который затем вернет объект Pattern. Эти методы принимают регулярное выражение в качестве первого аргумента.

Класс Matcher — объект Matcher — это механизм, который интерпретирует шаблон и выполняет операции сопоставления с входной строкой. Как и класс Pattern, Matcher не определяет общедоступных конструкторов. Вы получаете объект Matcher, вызывая метод matcher () для объекта Pattern.

PatternSyntaxException — Объект PatternSyntaxException является непроверенным исключением, которое указывает на синтаксическую ошибку в образце регулярного выражения.

Java Regex — захват групп

Захват групп — это способ рассматривать несколько символов как единое целое. Они создаются путем помещения символов, которые будут сгруппированы, в набор скобок. Например, регулярное выражение (собака) создает одну группу, содержащую буквы «d», «o» и «g».

Захватывающие группы нумеруются путем подсчета открывающих скобок слева направо. В выражении ((A) (B (C))), например, есть четыре такие группы —

  • ((А) (В (С)))
  • (А)
  • (ДО НАШЕЙ ЭРЫ))
  • (С)

Чтобы узнать, сколько групп присутствует в выражении, вызовите метод groupCount для объекта соответствия. Метод groupCount возвращает int, показывающий количество групп захвата, присутствующих в шаблоне сопоставителя.

Существует также специальная группа, группа 0, которая всегда представляет все выражение. Эта группа не включена в общее количество, сообщенное groupCount.

пример

В следующем примере показано, как найти строку цифр из заданной буквенно-цифровой строки:

Live Demo

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches {
   public static void main( String args[] ) {
      // String to be scanned to find the pattern.
      String line = "This order was placed for QT3000! OK?";
      String pattern = "(.*)(\\d+)(.*)";

      // Create a Pattern object
      Pattern r = Pattern.compile(pattern);

      // Now create matcher object.
      Matcher m = r.matcher(line);
      
      if (m.find( )) {
         System.out.println("Found value: " + m.group(0) );
         System.out.println("Found value: " + m.group(1) );
         System.out.println("Found value: " + m.group(2) );
      } else {
         System.out.println("NO MATCH");
      }
   }
}

Это даст следующий результат —

Выход

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0

Java Regex — интерфейс MatchResult

Вступление

Интерфейс java.util.regex.MatchResult представляет результат операции сопоставления. Этот интерфейс содержит методы запросов, используемые для определения результатов сопоставления с регулярным выражением. Границы соответствия, группы и границы группы можно увидеть, но нельзя изменить с помощью MatchResult.

Объявление интерфейса

Ниже приводится объявление для интерфейса java.util.regex.MatchResult.

public interface MatchResult

Методы интерфейса

Sr.No Метод и описание
1 int end ()

Возвращает смещение после совпадения последнего символа.

2 int end (int group)

Возвращает смещение после последнего символа подпоследовательности, захваченной данной группой во время этого совпадения.

3 Строковая группа ()

Возвращает входную подпоследовательность, совпадающую с предыдущим соответствием.

4 Строковая группа (int group)

Возвращает входную подпоследовательность, захваченную данной группой во время предыдущей операции сопоставления.

5 int groupCount ()

Возвращает количество групп захвата в шаблоне результата этого совпадения.

6 int start ()

Возвращает начальный индекс матча.

7 int start (int group)

Возвращает начальный индекс подпоследовательности, захваченной данной группой во время этого совпадения.

Возвращает смещение после совпадения последнего символа.

Возвращает смещение после последнего символа подпоследовательности, захваченной данной группой во время этого совпадения.

Возвращает входную подпоследовательность, совпадающую с предыдущим соответствием.

Возвращает входную подпоследовательность, захваченную данной группой во время предыдущей операции сопоставления.

Возвращает количество групп захвата в шаблоне результата этого совпадения.

Возвращает начальный индекс матча.

Возвращает начальный индекс подпоследовательности, захваченной данной группой во время этого совпадения.

Java Regex — Шаблон класса

Вступление

Класс java.util.regex.Pattern представляет скомпилированное представление регулярного выражения.

Объявление класса

Ниже приводится объявление для класса java.util.regex.Pattern

public final class Pattern
   extends Object
      implements Serializable

поле

Ниже приведены поля для класса java.util.regex.Duration

  • static int CANON_EQ — включает каноническую эквивалентность.

  • static int CASE_INSENSITIVE — включает сопоставление без учета регистра.

  • static int COMMENTS — разрешает пробелы и комментарии в шаблоне.

  • static int DOTALL — включает режим dotall.

  • static int LITERAL — включает буквальный анализ шаблона.

  • static int MULTILINE — включает многострочный режим.

  • static int UNICODE_CASE — включает сведение регистров с учетом Unicode.

  • static int UNICODE_CHARACTER_CLASS — включает версию предопределенных символьных классов и классов символов POSIX в Unicode.

  • static int UNIX_LINES — включает режим строк Unix.

static int CANON_EQ — включает каноническую эквивалентность.

static int CASE_INSENSITIVE — включает сопоставление без учета регистра.

static int COMMENTS — разрешает пробелы и комментарии в шаблоне.

static int DOTALL — включает режим dotall.

static int LITERAL — включает буквальный анализ шаблона.

static int MULTILINE — включает многострочный режим.

static int UNICODE_CASE — включает сведение регистров с учетом Unicode.

static int UNICODE_CHARACTER_CLASS — включает версию предопределенных символьных классов и классов символов POSIX в Unicode.

static int UNIX_LINES — включает режим строк Unix.

Методы класса

Sr.No Метод и описание
1 статическая компиляция шаблона (регулярное выражение строки)

Компилирует данное регулярное выражение в шаблон.

2 статическая компиляция шаблона (регулярное выражение строки, флаги int)

Компилирует данное регулярное выражение в шаблон с заданными флагами.

3 int flags ()

Возвращает флаги соответствия этого шаблона.

4 Matcher matcher (вход CharSequence)

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

5 статические логические совпадения (строковое регулярное выражение, ввод CharSequence)

Компилирует заданное регулярное выражение и пытается сопоставить заданный ввод с ним.

6 Шаблон строки ()

Возвращает регулярное выражение, из которого был скомпилирован этот шаблон.

7 статическая строковая кавычка (String s)

Возвращает буквенный шаблон String для указанной строки.

8 String [] split (вход CharSequence)

Разбивает заданную входную последовательность вокруг совпадений этого шаблона.

9 String [] split (вход CharSequence, предельное значение int)

Разбивает заданную входную последовательность вокруг совпадений этого шаблона.

10 Строка toString ()

Возвращает строковое представление этого шаблона.

Компилирует данное регулярное выражение в шаблон.

Компилирует данное регулярное выражение в шаблон с заданными флагами.

Возвращает флаги соответствия этого шаблона.

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

Компилирует заданное регулярное выражение и пытается сопоставить заданный ввод с ним.

Возвращает регулярное выражение, из которого был скомпилирован этот шаблон.

Возвращает буквенный шаблон String для указанной строки.

Разбивает заданную входную последовательность вокруг совпадений этого шаблона.

Разбивает заданную входную последовательность вокруг совпадений этого шаблона.

Возвращает строковое представление этого шаблона.

Методы унаследованы

Этот класс наследует методы от следующих классов —

  • java.lang.Object

Java Regex — Matcher Class

Вступление

Класс java.util.regex.Matcher действует как механизм, который выполняет операции сопоставления последовательности символов путем интерпретации Pattern.

Объявление класса

Ниже приводится объявление для класса java.util.regex.Matcher.

public final class Matcher
   extends Object
      implements MatchResult

Методы класса

Sr.No Метод и описание
1 Matcher appendReplacement (StringBuffer sb, String replace)

Реализует нетерминальный шаг добавления и замены.

2 StringBuffer appendTail (StringBuffer sb)

Реализует шаг добавления и замены терминала.

3 int end ()

Возвращает смещение после совпадения последнего символа.

4 int end (int group)

Возвращает смещение после последнего символа подпоследовательности, захваченной данной группой во время предыдущей операции сопоставления.

5 логическая находка ()

Пытается найти следующую подпоследовательность входной последовательности, которая соответствует шаблону.

6 логическая находка (int start)

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

7 Строковая группа ()

Возвращает входную подпоследовательность, захваченную данной группой во время предыдущей операции сопоставления.

8 Строковая группа (String name)

Возвращает входную подпоследовательность, захваченную заданной именованной группой захвата во время предыдущей операции сопоставления.

9 int groupCount ()

Возвращает количество групп захвата в шаблоне этого сопоставителя.

10 логическое hasAnchoringBounds ()

Запрашивает привязку границ региона для этого сопоставителя.

11 логический hasTransparentBounds ()

Запрашивает прозрачность границ региона для этого сопоставителя.

12 логический hitEnd ()

Возвращает true, если поисковый механизм достиг конца ввода во время последней операции сопоставления, выполненной этим сопоставителем.

13 boolean LookingAt ()

Пытается сопоставить входную последовательность, начиная с начала региона, с шаблоном.

14 логические совпадения ()

Попытки сопоставить весь регион с шаблоном.

15 Выкройка узора ()

Возвращает шаблон, который интерпретируется этим сопоставителем.

16 static String quoteReplacement (String s)

Возвращает буквенную замещающую строку для указанной строки.

17 Регион соответствия (int start, int end)

Устанавливает пределы области этого matcher.

18 int regionEnd ()

Сообщает конечный индекс (исключая) региона этого сопоставителя.

19 int regionStart ()

Сообщает начальный индекс региона этого сопоставителя.

20 String replaceAll (Замена строки)

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

21 String replaceFirst (замена строки)

Заменяет первую подпоследовательность входной последовательности, которая соответствует шаблону с данной строкой замены.

22 логическое requireEnd ()

Возвращает true, если большее количество входных данных может изменить положительное совпадение на отрицательное.

23 Сброс соответствия ()

Сбрасывает это соответствие.

24 Сброс соответствия (вход CharSequence)

Сбрасывает этот сопоставитель с новой входной последовательностью.

25 int start ()

Возвращает начальный индекс предыдущего матча.

26 int start (int group)

Возвращает начальный индекс подпоследовательности, захваченной данной группой во время предыдущей операции сопоставления.

27 MatchResult toMatchResult ()

Возвращает состояние соответствия этого сопоставителя в виде MatchResult.

28 Строка toString ()

Возвращает строковое представление этого сопоставителя.

29 Matcher useAnchoringBounds (логическое b)

Устанавливает привязку границ региона для этого сопоставителя.

30 Matcher usePattern (Шаблон newPattern)

Изменяет шаблон, который этот Matcher использует для поиска совпадений.

31 Matcher useTransparentBounds (логическое значение b)

Устанавливает прозрачность границ региона для этого сопоставителя.

Реализует нетерминальный шаг добавления и замены.

Реализует шаг добавления и замены терминала.

Возвращает смещение после совпадения последнего символа.

Возвращает смещение после последнего символа подпоследовательности, захваченной данной группой во время предыдущей операции сопоставления.

Пытается найти следующую подпоследовательность входной последовательности, которая соответствует шаблону.

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

Возвращает входную подпоследовательность, захваченную данной группой во время предыдущей операции сопоставления.

Возвращает входную подпоследовательность, захваченную заданной именованной группой захвата во время предыдущей операции сопоставления.

Возвращает количество групп захвата в шаблоне этого сопоставителя.

Запрашивает привязку границ региона для этого сопоставителя.

Запрашивает прозрачность границ региона для этого сопоставителя.

Возвращает true, если поисковый механизм достиг конца ввода во время последней операции сопоставления, выполненной этим сопоставителем.

Пытается сопоставить входную последовательность, начиная с начала региона, с шаблоном.

Попытки сопоставить весь регион с шаблоном.

Возвращает шаблон, который интерпретируется этим сопоставителем.

Возвращает буквенную замещающую строку для указанной строки.

Устанавливает пределы области этого matcher.

Сообщает конечный индекс (исключая) региона этого сопоставителя.

Сообщает начальный индекс региона этого сопоставителя.

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

Заменяет первую подпоследовательность входной последовательности, которая соответствует шаблону с данной строкой замены.

Возвращает true, если большее количество входных данных может изменить положительное совпадение на отрицательное.

Сбрасывает это соответствие.

Сбрасывает этот сопоставитель с новой входной последовательностью.

Возвращает начальный индекс предыдущего матча.

Возвращает начальный индекс подпоследовательности, захваченной данной группой во время предыдущей операции сопоставления.

Возвращает состояние соответствия этого сопоставителя в виде MatchResult.

Возвращает строковое представление этого сопоставителя.

Устанавливает привязку границ региона для этого сопоставителя.

Изменяет шаблон, который этот Matcher использует для поиска совпадений.

Устанавливает прозрачность границ региона для этого сопоставителя.

Методы унаследованы

Этот класс наследует методы от следующих классов —

  • java.lang.Object

Java Regex — класс PatternSyntaxException

Вступление

Класс java.util.regex.PatternSyntaxException представляет непроверенное исключение, которое выдается для указания синтаксической ошибки в шаблоне регулярного выражения.

Объявление класса

Ниже приводится объявление для класса java.util.regex.PatternSyntaxException

public class PatternSyntaxException
   extends IllegalArgumentException

Конструкторы

Sr.No Метод и описание
1 PatternSyntaxException (String desc, String regex, int index)

Создает новый экземпляр этого класса.

Создает новый экземпляр этого класса.

Методы класса

Sr.No Метод и описание
1 Строка getDescription ()

Получает описание ошибки.

2 int getIndex ()

Получает индекс ошибки.

3 Строка getMessage ()

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

4 Строка getPattern ()

Получает ошибочный шаблон регулярного выражения.

Получает описание ошибки.

Получает индекс ошибки.

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

Получает ошибочный шаблон регулярного выражения.

Методы унаследованы

Этот класс наследует методы от следующих классов —

  • java.lang.Throwable
  • java.lang.Object

пример

В следующем примере показано использование методов класса java.util.regex.Pattern.PatternSyntaxException.

Live Demo

package com.tutorialspoint;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

public class PatternSyntaxExceptionDemo {
   private static String REGEX = "[";
   private static String INPUT = "The dog says meow " + "All dogs say meow.";
   private static String REPLACE = "cat";

   public static void main(String[] args) {
      try{
         Pattern pattern = Pattern.compile(REGEX);
         
         // get a matcher object
         Matcher matcher = pattern.matcher(INPUT); 
         INPUT = matcher.replaceAll(REPLACE);
      } catch(PatternSyntaxException e){
         System.out.println("PatternSyntaxException: ");
         System.out.println("Description: "+ e.getDescription());
         System.out.println("Index: "+ e.getIndex());
         System.out.println("Message: "+ e.getMessage());
         System.out.println("Pattern: "+ e.getPattern());
      }
   }
}

Давайте скомпилируем и запустим вышеуказанную программу, это даст следующий результат:

PatternSyntaxException: 
Description: Unclosed character class
Index: 0
Message: Unclosed character class near index 0
[
^
Pattern: [

Java Regex — Примеры соответствия символов

Ниже приведены различные примеры соответствия символов с использованием регулярного выражения в Java.

Sr.No Конструкция и Матчи
1 Икс

Персонаж х

2 \\

Символ обратной косой черты

3 \ 0n

Символ с восьмеричным значением 0n (0 ≤ n ≤ 7)

4 \ 0nn

Символ с восьмеричным значением 0nn (0 ≤ n ≤ 7)

5 \ 0mnn

Символ с восьмеричным значением 0mnn (0 ≤ m ≤ 3, 0 ≤ n ≤ 7)

6 \ xhh

Символ с шестнадцатеричным значением 0xhh

7 \ Uhhhh

Символ с шестнадцатеричным значением 0xhhhh

8 \ т

Символ табуляции (‘\ u0009’)

9 \ п

Символ перевода строки (перевод строки) (‘\ u000A’)

10

Символ возврата каретки (‘\ u000D’)

11 \ е

Символ перевода формы (‘\ u000C’)

Персонаж х

Символ обратной косой черты

Символ с восьмеричным значением 0n (0 ≤ n ≤ 7)

Символ с восьмеричным значением 0nn (0 ≤ n ≤ 7)

Символ с восьмеричным значением 0mnn (0 ≤ m ≤ 3, 0 ≤ n ≤ 7)

Символ с шестнадцатеричным значением 0xhh

Символ с шестнадцатеричным значением 0xhhhh

Символ табуляции (‘\ u0009’)

Символ перевода строки (перевод строки) (‘\ u000A’)

Символ возврата каретки (‘\ u000D’)

Символ перевода формы (‘\ u000C’)

Java Regex — соответствующие классы символов

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

Sr.No Конструкция и Матчи
1 [ABC]

a, b или c (простой класс).

2 [^ а]

Любой символ, кроме a, b или c (отрицание).

3 [A-Za-Z]

от a до z или от A до Z включительно (диапазон).

4 [Объявление [тр]]

от a до d или от m до p: [a-dm-p] (объединение).

5 [аги && [Защита]]

d, e или f (пересечение).

6 [аг && [^ Ьс]]

от a до z, кроме b и c: [ad-z] (вычитание)

7 [AZ && [^ тр]]

от a до z, а не от m до p: [a-lq-z] (вычитание).

a, b или c (простой класс).

Любой символ, кроме a, b или c (отрицание).

от a до z или от A до Z включительно (диапазон).

от a до d или от m до p: [a-dm-p] (объединение).

d, e или f (пересечение).

от a до z, кроме b и c: [ad-z] (вычитание)

от a до z, а не от m до p: [a-lq-z] (вычитание).

Соответствие предопределенных классов символов

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

Sr.No Конструкция и Матчи
1 ,

Любой символ (может соответствовать или не соответствовать символу конца строки).

2 \ d

Цифра: [0-9].

3 \ D

Не цифра: [^ 0-9].

4 \ s

Пробельный символ: [\ t \ n \ x0B \ f \ r]

5 \ S

Непробельный символ: [^ \ s].

6 \ ш

Символ слова: [a-zA-Z_0-9].

7 \ W

Несловарный символ: [^ \ w]

Любой символ (может соответствовать или не соответствовать символу конца строки).

Цифра: [0-9].

Не цифра: [^ 0-9].

Пробельный символ: [\ t \ n \ x0B \ f \ r]

Непробельный символ: [^ \ s].

Символ слова: [a-zA-Z_0-9].

Несловарный символ: [^ \ w]

Соответствие классам символов POSIX

Ниже приведены различные примеры сопоставления классов символов POSIX с использованием регулярного выражения в Java.

Sr.No Конструкция и Матчи
1 \ р {Lower}

Строчный буквенный символ: [az].

2 \ р {Верхний}

Буквенный символ верхнего регистра: [AZ].

3 \ р {ASCII}

Все ASCII: [\ x00- \ x7F].

4 \ р {Альфа}

Буквенный символ: [\ p {Lower} \ p {Upper}].

5 \ р {Разряд}

Десятичная цифра: [0-9].

6 \ р {} цифра , буква

Буквенно-цифровой символ: [\ p {Alpha} \ p {Digit}].

7 \ р {Punct}

Пунктуация: Одна из! «# $% & ‘() * +, -. / :; <=>? @ [\] ^ _> {|} <.

8 \ р {Graph}

Видимый символ: [\ p {Alnum} \ p {Punct}].

9 \ р {Печать}

Печатный символ: [\ p {Graph} \ x20].

10 \ р {Blank}

Пробел или табуляция: [\ t].

11 \ р {XDigit}

Шестнадцатеричная цифра: [0-9a-fA-F].

12 \ р {пробел}

Пробельный символ: [\ t \ n \ x0B \ f \ r].

Строчный буквенный символ: [az].

Буквенный символ верхнего регистра: [AZ].

Все ASCII: [\ x00- \ x7F].

Буквенный символ: [\ p {Lower} \ p {Upper}].

Десятичная цифра: [0-9].

Буквенно-цифровой символ: [\ p {Alpha} \ p {Digit}].

Пунктуация: Одна из! «# $% & ‘() * +, -. / :; <=>? @ [\] ^ _> {|} <.

Видимый символ: [\ p {Alnum} \ p {Punct}].

Печатный символ: [\ p {Graph} \ x20].

Пробел или табуляция: [\ t].

Шестнадцатеричная цифра: [0-9a-fA-F].

Пробельный символ: [\ t \ n \ x0B \ f \ r].

Соответствие классам символов JAVA

Ниже приведены различные примеры сопоставления классов символов JAVA с использованием регулярного выражения в Java.

Sr.No Конструкция и Матчи
1 \ р {javaLowerCase}

Эквивалент java.lang.Character.isLowerCase ().

2 \ р {javaUpperCase}

Эквивалент java.lang.Character.isUpperCase ().

3 \ р {javaWhitespace}

Эквивалент java.lang.Character.isWhitespace ().

4 \ р {javaMirrored}

Эквивалент java.lang.Character.isMirrored ().

Эквивалент java.lang.Character.isLowerCase ().

Эквивалент java.lang.Character.isUpperCase ().

Эквивалент java.lang.Character.isWhitespace ().

Эквивалент java.lang.Character.isMirrored ().

Соответствие классам символов Unicode

Ниже приведены различные примеры сопоставления классов символов Unicode с использованием регулярного выражения в Java.

Sr.No Конструкция и Матчи
1 \ р {IsLatin}

Символ латинского алфавита.

2 \ р {InGreek}

Персонаж в греческом блоке.

3 \ р {Lu}

Буква в верхнем регистре.

4 \ р {IsAlphabetic}

Буквенный символ (двоичное свойство).

5 \ р {Sc}

Символ валюты

6 \ Р {InGreek}

Любой персонаж, кроме одного в греческом блоке.

7 [\ р {L} && [^ \ р {Лу}]]

Любая буква, кроме заглавной.

Символ латинского алфавита.

Персонаж в греческом блоке.

Буква в верхнем регистре.

Буквенный символ (двоичное свойство).

Символ валюты

Любой персонаж, кроме одного в греческом блоке.

Любая буква, кроме заглавной.

Примеры граничных совпадений

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

Sr.No Конструкция и Матчи
1 ^

Начало строки.

2 $

Конец строки.

3 \ б

Граница слова.

4 \ B

Несловая граница.

5 \ A

Начало ввода.

6

Конец предыдущего матча.

7 \ Z

Конец ввода, кроме конечного терминатора, если есть.

8 \ г

Конец ввода.

Начало строки.

Конец строки.

Граница слова.

Несловая граница.

Начало ввода.

Конец предыдущего матча.

Конец ввода, кроме конечного терминатора, если есть.

Конец ввода.

Java регулярные выражения жадных квантификаторов

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

Sr.No Конструкция и Матчи
1 ИКС?

X, один раз или нет вообще.

2 ИКС*

X, ноль или более раз

3 X +

X, один или несколько раз.

4 Х {п}

X, ровно n раз.

5 Х {п,}

X, по крайней мере, n раз.

6 Х {п, т}

X не менее n, но не более m раз

X, один раз или нет вообще.

X, ноль или более раз

X, один или несколько раз.

X, ровно n раз.

X, по крайней мере, n раз.

X не менее n, но не более m раз

Примеры неохотных квантификаторов

Квантификатор с неохотой указывает, что поисковая система начинает с самого короткого фрагмента строки. Как только совпадение найдено, двигатель продолжает работу; в противном случае он добавляет один символ в раздел проверяемой строки и ищет его, и так далее. Этот процесс продолжается до тех пор, пока не найдет совпадение или не будет использована вся строка. Ниже приведены различные примеры неохотных квантификаторов, использующих регулярные выражения в Java.

Sr.No Конструкция и Матчи
1 ИКС??

X, один раз или нет вообще.

2 ИКС*?

X, ноль или более раз

3 X +?

X, один или несколько раз.

4 Х {п}?

X, ровно n раз.

5 Х {п,}?

X, по крайней мере, n раз.

6 Х {п, т}?

X не менее n, но не более m раз

X, один раз или нет вообще.

X, ноль или более раз

X, один или несколько раз.

X, ровно n раз.

X, по крайней мере, n раз.

X не менее n, но не более m раз


Примеры притяжательных квантификаторов

Притяжательный квантификатор похож на жадный квантификатор. Он указывает, что двигатель запускается путем проверки всей строки. Это отличается в том смысле, что он не работает, если сопоставление не выполнено и нет оглядки назад. Ниже приведены различные примеры Possessive Quantifiers, использующих регулярные выражения в Java.

Sr.No Конструкция и Матчи
1 X? +

X, один раз или нет вообще.

2 X * +

X, ноль или более раз

3 X ++

X, один или несколько раз.

4 Х {п} +

X, ровно n раз.

5 Х {п,} +

X, по крайней мере, n раз.

6 Х {п, т} +

X не менее n, но не более m раз

X, один раз или нет вообще.

X, ноль или более раз

X, один или несколько раз.

X, ровно n раз.

X, по крайней мере, n раз.

X не менее n, но не более m раз

Java Regex — Примеры логических операторов

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

X, а затем Y.

Либо X, либо Y.