Основы регулярных выражений
Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 46 из 59.
Регулярные выражения (regex) — это шаблоны, используемые для поиска и проверки строк. В Java мы используем метод matches() для проверки соответствия строки шаблону.
Проверить, содержит ли строка только цифры:
String text = "12345";
boolean isMatch = text.matches("[0-9]+");После выполнения приведенного выше кода, isMatch содержит:
true
Проверить, содержит ли строка только буквы:
String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");После выполнения приведенного выше кода, isMatch содержит:
true
Задание
ЛегкоСоздайте метод с именем validateInput, который принимает два аргумента:
- Строку (
text) для проверки - Строку (
type), которая указывает тип проверки
Метод должен проверять текст в зависимости от этих типов:
- "number": должен содержать только цифры (0-9)
- "word": должен содержать только буквы (a-z или A-Z)
- "email": должен содержать @ и хотя бы один символ перед ним
- "phone": должен содержать ровно 10 цифр
Возвращаемые сообщения должны быть:
- Если text равен null: вернуть "Invalid input"
- Если type недействителен: вернуть "Invalid type"
- Если проверка пройдена: вернуть "Valid"
- Если проверка не пройдена: вернуть "Invalid"
Шпаргалка
Регулярные выражения (regex) — это шаблоны, используемые для поиска и проверки строк. В Java используйте метод matches(), чтобы проверить, соответствует ли строка шаблону.
Проверить, содержит ли строка только цифры:
String text = "12345";
boolean isMatch = text.matches("[0-9]+");Проверить, содержит ли строка только буквы:
String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");Общие шаблоны regex:
[0-9]+- одна или более цифр[a-zA-Z]+- одна или более букв[0-9]{10}- ровно 10 цифр.+@.+- содержит @ с хотя бы одним символом перед ним
Попробуйте сами
import java.util.Scanner;
public class Main {
public static String validateInput(String text, String type) {
// Напишите свой код здесь
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String type = scanner.nextLine();
if (text.equals("null")) text = null;
System.out.println(validateInput(text, type));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap5HashSet Часть 2
Математика - Объединение HashSetsМатематика - Пересечение HashSetМатематика - Разность множествМатематика - Симметрическая разностьПодмножества и надмножестваИтерация по множествам8Продвинутые операции со строками
Основы StringBuilderВведение в StringBufferОсновы регулярных выраженийСопоставление шаблонов с RegexСтроковый токенизаторПродвинутое форматирование строк3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов