반응형
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
- js
- 이클립스
- 문자열
- javascript
- vscode
- string
- 정규식
- Visual Studio Code
- 이탈리아
- 자바스크립트
- HashMap
- Button
- date
- map
- input
- 배열
- html
- Array
- IntelliJ
- CSS
- replace
- 인텔리제이
- table
- 자바
- ArrayList
- Eclipse
- Java
- json
- list
- CMD
Archives
- Today
- Total
어제 오늘 내일
[Java Pattern] compile() - 정규표현식 패턴 만들기 본문
Java에서 정규표현식을 사용하려면 먼저 문자열 형태의 정규식을 패턴 객체로 변환해야 합니다. 이때 사용하는 메소드가 Pattern.compile()
입니다. 이 메소드를 통해 Pattern
객체를 생성한 뒤, Matcher
를 이용해 문자열 검색이나 치환을 수행할 수 있습니다.
1. compile()
메소드 개요
- 메소드 시그니처
public static Pattern compile(String regex) public static Pattern compile(String regex, int flags)
regex
: 정규표현식 패턴 문자열flags
: 패턴 옵션 (대소문자 무시, 멀티라인 모드 등)
주요 옵션(flags
상수)
Pattern.CASE_INSENSITIVE
: 대소문자 구분 없이 매칭Pattern.MULTILINE
: 여러 줄에서 ^, $ 인식Pattern.DOTALL
:.
이 줄바꿈 문자까지 포함하도록 매칭
2. 기본 사용 예제
import java.util.regex.*;
public class PatternCompileExample {
public static void main(String[] args) {
String input = "Java, java, JAVA";
Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("일치: " + matcher.group() +
" (위치: " + matcher.start() + ")");
}
}
}
예제 설명
Pattern.compile("java", Pattern.CASE_INSENSITIVE)
→ 정규식을 대소문자 구분 없이 컴파일합니다.matcher.find()
→ 입력 문자열에서"Java"
,"java"
,"JAVA"
모두 매칭됩니다.- 실행 결과:
일치: Java (위치: 0)
일치: java (위치: 6)
일치: JAVA (위치: 12)
즉, 대소문자에 상관없이 "java"
라는 단어를 모두 찾아낼 수 있습니다.
3. 활용 사례
- 대소문자 무시 검색 (
Java
↔java
) - 로그 파일 분석 (여러 줄에서 특정 패턴 찾기)
- 정규식 기반 데이터 검증 (이메일, 전화번호 등)
정리
Pattern.compile()
메소드는 정규표현식을 실제 사용할 수 있는 Pattern
객체로 만드는 핵심 메소드입니다. 다양한 옵션을 함께 사용하면 유연한 문자열 검색 및 분석이 가능합니다.
반응형
'IT > Java' 카테고리의 다른 글
[Java Matcher] matches() - 문자열 전체가 패턴과 일치하는지 확인하기 (0) | 2025.10.04 |
---|---|
[Java Pattern] split() - 정규표현식으로 문자열 나누기 (0) | 2025.10.03 |
[Java Pattern & Matcher] 정규표현식 클래스 개요 (0) | 2025.10.02 |
[Java Character] getNumericValue() - 문자를 숫자로 변환하기 (0) | 2025.10.02 |
[Java Character] isUpperCase(), isLowerCase() - 문자가 대문자인지 소문자인지 확인하기 (0) | 2025.10.01 |
Comments