English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

是否使用Java正则表达式接受日期字符串(MM-dd-yyyy格式)?

Ecco l'espressione regolare che corrisponde alla data con il formato dd-MM-yyyy.

^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$

Corrisponde alla data nella stringa con questo formato.

  • Compilazionecompile()l'espressione del metodo Pattern.

  • Salta l'input richiesto comematcher()Il metodo del Pattern utilizza i parametri per ottenere l'oggetto Matcher.

  • matches()Se c'è una corrispondenza, il metodo della classe Matcher restituisce true, altrimenti restituisce false. Pertanto, chiamare questo metodo per verificare i dati.

Esempio 1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchingDate {
   public static void main(String[] args) {
      String date = "01/12/2019";
      String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
      //Crea un oggetto modello
      Pattern pattern = Pattern.compile(regex);
      //Abbatte la stringa con il modello già compilato
      Matcher matcher = pattern.matcher(date);
      boolean bool = matcher.matches();
      if(bool) {
         System.out.println("Data è valida");
      } else {
         System.out.println("La data non è valida");
      }
   }
}

Output dei risultati

La data è valida

matches()Il metodo della String accetta un'espressione regolare e la abbinamento con la stringa corrente, se corrisponde restituisce true, altrimenti restituisce false. Pertanto, per verificare se la data fornita (in formato stringa) è necessaria-

  • Ottieni la stringa della data.

  • matches()Chiamare il metodo passando l'espressione regolare come parametro.

Esempio 2

import java.util.Scanner;
public class Just {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Inserisci il tuo nome:");
      String name = sc.nextLine();
      System.out.println("Inserisci la tua data di nascita:");
      String dob = sc.nextLine();
      //L'espressione regolare accetta le date nel formato MM-DD-YYY
      String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
      boolean result = dob.matches(regex);
      if(result) {
         System.out.println("La data di nascita fornita è valida");
      } else {
         System.out.println("La data di nascita fornita non è valida");
      }
   }
}

Output 1

Inserisci il tuo nome:
Janaki
Inserisci la tua data di nascita:
26/09/1989
La data di nascita fornita non è valida

Output 2

Inserisci il tuo nome:
Janaki
Inserisci la tua data di nascita:
26/09/1989
La data di nascita fornita è valida