반응형
    
    
    
  
		                                        Notice
		                                        
										
                                    
                                    
                                        Recent Posts
                                        
                                    
                                    
                                        Recent Comments
                                        
                                    
                                    
                                        Link
                                        
                                    
                                | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                                        Tags
                                        
                                    
                                    - Button
- 자바스크립트
- map
- replace
- 이탈리아
- 이클립스
- json
- Eclipse
- 배열
- vscode
- ArrayList
- CSS
- html
- Visual Studio Code
- date
- 문자열
- Array
- input
- js
- 자바
- HashMap
- table
- CMD
- 인텔리제이
- 정규식
- IntelliJ
- string
- javascript
- list
- Java
                                        Archives
                                        
                                    
                                    - Today
- Total
어제 오늘 내일
[Java Pattern & Matcher] 정규표현식 클래스 개요 본문
Java에서 문자열을 다룰 때 단순한 split()이나 replace() 만으로는 부족한 경우가 많습니다. 복잡한 문자열 패턴을 검색하거나 치환하려면 정규표현식(Regex) 을 사용해야 하는데, 이때 활용되는 클래스가 바로 Pattern과 Matcher입니다.
1. Pattern 클래스 개요
- 정규표현식을 컴파일해서 객체로 표현하는 클래스
- 주요 메소드
- Pattern.compile(String regex): 정규표현식을 컴파일하여- Pattern객체 생성
- split(String input): 정규식 기준으로 문자열 분리
- matcher(CharSequence input): 특정 문자열에 대해- Matcher객체 생성
 
2. Matcher 클래스 개요
- Pattern객체를 이용해 특정 문자열에 대해 검색을 수행하는 클래스
- 주요 메소드
- find(): 패턴과 일치하는 부분 문자열 찾기
- matches(): 문자열 전체가 정규식과 일치하는지 검사
- group(): 매칭된 문자열 반환
- start()/- end(): 매칭된 부분의 시작, 끝 인덱스 반환
- replaceAll(String replacement): 정규식과 일치하는 부분을 치환
 
3. 간단한 예제
import java.util.regex.*;
public class PatternMatcherExample {
    public static void main(String[] args) {
        String input = "Java 17, Python 3.10, JavaScript ES6";
        Pattern pattern = Pattern.compile("\\bJava\\b");
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            System.out.println("일치하는 단어: " + matcher.group() + 
                               " (위치: " + matcher.start() + ")");
        }
    }
}예제 설명
- String input = "Java 17, Python 3.10, JavaScript ES6";
 → 검색 대상 문자열입니다.
- Pattern pattern = Pattern.compile("\\bJava\\b");
 → 정규표현식- \\bJava\\b를 패턴으로 컴파일합니다.- \\b는 단어 경계를 의미합니다.
- 따라서 "JavaScript"안의"Java"는 제외되고, 독립적인"Java"만 매칭됩니다.
 
- Matcher matcher = pattern.matcher(input);
 → 입력 문자열과 패턴을 연결해- Matcher객체를 생성합니다.
- while (matcher.find())
 → 입력 문자열을 순회하면서 패턴과 일치하는 부분을 찾습니다.
- matcher.group()
 → 매칭된 실제 문자열을 반환합니다.
- matcher.start()
 → 매칭된 문자열이 시작되는 인덱스를 반환합니다.
출력 결과는 다음과 같습니다:
일치하는 단어: Java (위치: 0)즉, 입력 문자열에서 "JavaScript" 안의 "Java"는 무시되고, 맨 앞 "Java"만 인식된 것을 확인할 수 있습니다.
반응형
    
    
    
  'IT > Java' 카테고리의 다른 글
| [Java Pattern] split() - 정규표현식으로 문자열 나누기 (0) | 2025.10.03 | 
|---|---|
| [Java Pattern] compile() - 정규표현식 패턴 만들기 (0) | 2025.10.03 | 
| [Java Character] getNumericValue() - 문자를 숫자로 변환하기 (0) | 2025.10.02 | 
| [Java Character] isUpperCase(), isLowerCase() - 문자가 대문자인지 소문자인지 확인하기 (0) | 2025.10.01 | 
| [Java Character] toUpperCase(), toLowerCase() - 문자의 대소문자 변환하기 (0) | 2025.10.01 | 
                              Comments