Menu
Coddy logo textTech

正規表現の基礎

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 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 という名前のメソッドを作成し、2つの引数を受け取るようにしてください:

  1. 検証する String (text)
  2. 検証タイプを指定する String (type)

このメソッドは、以下のタイプに基づいてテキストを検証する必要があります:

  • "number": 0-9 の数字のみを含まなければなりません
  • "word": a-z または A-Z の文字のみを含まなければなりません
  • "email": @ を含み、その前に少なくとも 1 つの文字を含まなければなりません
  • "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]+ - 1つ以上の数字
  • [a-zA-Z]+ - 1つ以上の文字
  • [0-9]{10} - ちょうど 10 桁の数字
  • .+@.+ - その前に少なくとも 1 文字があり @ を含む

自分で試してみよう

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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン