반응형
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 | 31 |
Tags
- input
- 자바스크립트
- ArrayList
- CMD
- CSS
- html
- json
- js
- Eclipse
- Visual Studio Code
- javascript
- Array
- HashMap
- 배열
- 이클립스
- list
- 인텔리제이
- 정규식
- table
- Java
- 이탈리아
- IntelliJ
- 자바
- map
- Button
- replace
- vscode
- 문자열
- date
- string
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