正規表現の基礎
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
チャレンジ
簡単validateInput という名前のメソッドを作成し、2つの引数を受け取るようにしてください:
- 検証する String (
text) - 検証タイプを指定する 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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。