Java Regex - что такое регулярные выражения и как их использовать?



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

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

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





как разобрать xml в java

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

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

Регулярные выражения - Java Regex - Edureka



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

Что такое Java Regex?

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

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



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

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

Метод Описание
логические совпадения () Проверяет, соответствует ли данное регулярное выражение шаблону
логическое find () Используется для поиска следующего выражения, соответствующего шаблону
логический поиск (int start) Ищет следующее выражение, соответствующее шаблону с заданным начальным номером
Группа строк () Используется для возврата согласованной подпоследовательности
int start () Возвращает начальный индекс совпадающей подпоследовательности.
int конец () Возвращает конечный индекс совпавшей подпоследовательности.
int groupCount () Возвращает общее количество совпавших подпоследовательностей.

Класс шаблона

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

Метод Описание
статическая компиляция шаблона (регулярное выражение String) Он компилирует данное регулярное выражение и возвращает экземпляр шаблона.
Соответствует совпадениям (ввод CharSequence) Он используется для создания сопоставителя, который сопоставляет данный ввод с шаблоном
статические логические совпадения (регулярное выражение String, ввод CharSequence) Он работает как комбинация методов компиляции и сопоставления. Он компилирует регулярное выражение и сопоставляет заданный ввод с шаблоном
String [] split (вход CharSequence) Используется для разделения заданной входной строки на совпадения с заданным шаблоном
Шаблон строки () Помогает вернуть шаблон регулярного выражения

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

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 ('Строка соответствует заданному регулярному выражению - + matcher.matches ())}}

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

Вывод:
правда

тип данных даты сервера sql

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

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

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

Класс персонажаОписание
[abc] a, b или c (простой класс)
[^ abc] Любой символ кроме a, b или c (отрицание)
[а-я-я] от a до z или от A до Z включительно (диапазон)
[а-д [м-р]] от a до d или от m до p: [a-dm-p] (объединение)
[а-я && [по умолчанию]] d, e или f (пересечение)
[а-я && [^ bc]] от a до z, кроме b и c: [ad-z] (вычитание)
[а-я && [^ м-р]] от a до z, а не от m до p: [a-lq-z] (вычитание)

Пример:

import java.util.regex. * public class CharacterExample {public static void main (String args []) {// false (не x, y или z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // истина (среди x, y или z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x и y появляются более одного раза) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}

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

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

Регулярное выражениеОписание
ИКС? X встречается один раз или не встречается совсем
Х + X встречается один или несколько раз
ИКС * X встречается ноль или более раз
X {n} X встречается только n раз
X {n,} X встречается n или более раз
X и Z} X встречается не менее y раз, но менее z раз

Пример:

import java.util.regex. * public class Example {public static void main (String args []) {System.out.println ('? quantifier ....') // (a или y или z появляются один раз) System.out.println (Pattern.matches ('[ayz]?', 'A')) // вывод: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay и z появляются более одного раза) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a появляется более одного раза) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a, y или z должны приходить один раз) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // output: false System.out.println (' + quantifier .... ') // (a или y или z один или несколько раз) System.out.println (Pattern .matches ('[ayz] +', 'a')) // output: true // (a появляется более одного раза) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a, y или z приходит более одного раза) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z и t не соответствуют шаблону) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: false System.out.println ('* quantifier ....') // (a или y или z могут встречаться ноль или более раз ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // вывод: true}}

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

что такое вектор в Java

Метасимволы Regex

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

Регулярное выражениеОписание
. Это может быть любой символ (может совпадать или не совпадать с терминатором)
d Представляет любые цифры, кроме [0-9]
D Представляет любые цифры, сокращенно от [^ 0-9]
s Представляет любой символ пробела, сокращение от [tnx0Bfr]
S Это может быть непробельный символ, сокращение от [^ s]
в Это может быть словесный символ, сокращение от [a-zA-Z_0-9]
В Представляет любой символ, не являющийся словом, сокращение от [^ w]
б Представляет границу слова
B Это не граница слова

Пример:

import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d означает цифру System.out.println ('metacharacters d ....') // (не цифра) System.out.println (Pattern.matches ('d', 'abc')) // Вывод: false // (цифра и идет один раз) System.out.println (Pattern.matches ('d', '1') ) // Вывод: true // (цифра, но встречается более одного раза) System.out.println (Pattern.matches ('d', '4443')) // Вывод: false // (цифра и символ) System.out .println (Pattern.matches ('d', '323abc')) // Вывод: false // D означает нецифровую System.out.println ('metacharacters D ....') // (не цифра, но приходит более одного раза) System.out.println (Pattern.matches ('D', 'abc')) // Вывод: false // Это цифра System.out.println (Pattern.matches ('D', '1 ')) // Вывод: false System.out.println (Pattern.matches (' D ',' 4443 ')) // Вывод: false // (цифра и символ) System.out.println (Pattern.matches (' D ',' 323abc ')) // Вывод: false // (не является цифрой и встречается один раз) System.out.println (Pattern.matches (' D ',' m ')) // Вывод: true System.out .pr intln ('метасимволы D с квантификатором ....') // (нецифровые, могут встречаться 0 и более раз) System.out.println (Pattern.matches ('D *', 'abc')) // Вывод : правда } }

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

Проверьте от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Мы здесь, чтобы помочь вам на каждом этапе вашего пути. Чтобы стать помимо вопросов на собеседовании по Java, мы разработали учебную программу, предназначенную для студентов и профессионалов, которые хотят стать Java-разработчиками.

Есть вопрос к нам? Пожалуйста, укажите это в комментариях к этой статье «Java Regex», и мы свяжемся с вами как можно скорее.