Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 정규 표현식 메타 문자 |(OR) 사용법 총정리

Java 정규 표현식에서 | 메타 문자는 OR 연산자 역할을 합니다. 즉, 하위 표현식 "a|b"는 패턴 a 또는 b 중 하나와 일치하는 문자열을 찾습니다.

예제 1: 패턴 매칭 개수 세기

다음 예제에서는 "Hello|welcome"이라는 정규 표현식을 사용하여 입력 문자열에서 두 단어가 각각 몇 번 등장하는지 확인합니다.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
    public static void main( String args[] ) {
        String regex = "Hello|welcome";
        String input = "Hello how are you welcome to Tutorialspoint";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input);
        int count = 0;
        while(m.find()) {
            count++;
        }
        System.out.println("Number of matches: "+count);
    }
}

실행 결과

Number of matches: 2

입력 문자열에는 "Hello"가 1번, "welcome"이 1번 포함되어 있으므로 총 2개의 일치 항목이 발견됩니다.

예제 2: 입력값 유효성 검사

다음 Java 프로그램은 사용자로부터 성별 값을 입력받아, 오직 M(남성), F(여성), O(기타) 중 하나만 허용하는 예제입니다.

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
    public static void main( String args[] ) {
        // M 또는 F 또는 O와 일치하는 정규 표현식
        String regex = "M|F|O";
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter students gender:");
        String name = sc.nextLine();
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(name);
        if(m.matches()) {
            System.out.println("All OK");
        } else {
            System.out.println("Wrong Input");
        }
    }
}

실행 결과 1

Enter students gender:
M
All OK

실행 결과 2

Enter students gender:
male
Wrong Input

두 번째 실행 결과에서 "male"과 같은 전체 단어를 입력하면 matches() 메서드는 입력 문자열 전체가 정규 표현식과 정확히 일치해야 하므로 "Wrong Input"을 출력합니다. 만약 부분 일치만 필요하다면 find() 메서드를 사용하거나, 대소문자 구분 없이 처리하려면 Pattern.CASE_INSENSITIVE 옵션을 활용할 수 있습니다.