Menu
Coddy logo textTech

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

Часть раздела Логика и управление потоком путешествия по 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

challenge icon

Задание

Легко

Создайте метод с именем validateInput, который принимает два аргумента:

  1. Строку (text) для проверки
  2. Строку (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));
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком