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

Java RegEx를 사용하여 표현식이 나타나는 횟수를 어떻게 일치시키는가?

Java提供的贪婪量词使您可以匹配多次出现的表达式。哪里,

  • Exp {n}促使表达式exp恰好出现n次。

  • Exp {n,}促使表达式exp至少出现n次。

  • Exp {n,m}促使表达式exp至少出现n次,最多m次。

예제1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
   public static void main( String args[] ) {
      //正则表达式接受5个字母的单词
      String regex = \\\\w{5};
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter 5 input strings: ");
      String input[] = new String[5];
      for (int i = 0; i <5; i++) {
         input[i] = sc.nextLine();
      }
      //Pattern 객체를 생성합니다
      Pattern p = Pattern.compile(regex);
      for(int i=0; i<5;i++) {
         //Matcher 객체를 생성합니다
         Matcher m = p.matcher(input[i);
         if(m.find()) {
            System.out.println(input[i+": accepted");
         } else {
            System.out.println(input[i+": not accepted");
         }
      }
   }
}

출력 결과

Enter 5 입력 문자열:
rama
raja
raghu
megha
malya
rama: not accepted
raja: not accepted
raghu: accepted
megha: accepted
malya: accepted

예제2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
   public static void main( String args[] ) {
      //正则表达式匹配长度为2到6的非单词字符串
      String regex = \\\\W{2,6};
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter 5 input strings: ");
      String input[] = new String[5];
      for (int i = 0; i <5; i++) {
         input[i] = sc.nextLine();
      }
      //Pattern 객체를 생성합니다
      Pattern p = Pattern.compile(regex);
      for(int i=0; i<5;i++) {
         //Matcher 객체를 생성합니다
         Matcher m = p.matcher(input[i);
         if(m.find()) {
            System.out.println(input[i+" matched");
         }
      }
   }
}

출력1

Enter 5 입력 문자열:
hello how are you
#$#%
#
#$@%%#&#&
sample text
#$#% matched
#$@%%#&#& matched

예제3

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
   public static void main(String args[] ) {
      String regex = "[a-zA-Z]{1,2"0"
      Scanner sc = new Scanner(System.in);
      System.out.println("학생 이름을 입력하세요:");
      String name = sc.nextLine();
      Pattern p = Pattern.compile(regex);
      Matcher m = p.matcher(name);
      if(m.matches()) {
         System.out.println("이름은 적절합니다");
      } else {
         System.out.println("이름은 적절하지 않습니다");
      }
   }
}

출력 결과

학생 이름을 입력하세요:
Mouktika
이름은 적절합니다
추천해드립니다