"Java (?!...)"는 정규 표현식(Regular Expression, RegEx)에서 사용되는 특수한 구문입니다. 정규 표현식은 문자열을 검색하고 조작하기 위해 사용하는 매우 강력한 도구입니다. 이제 `Java (?!...)`의 구성 요소를 하나씩 설명해 드리겠습니다.
### 1. `Java`
이 부분은 문자열 "Java"를 의미합니다. 정규 표현식에서 `Java`라는 패턴을 찾게 됩니다.
### 2. `(?!...)`
이 부분은 부정형 전방탐색(Negative Lookahead)이라고 불리는 구문입니다. 부정형 전방탐색은 특정 패턴이 뒤따르지 않는 경우에만 일치하도록 합니다. 즉, `(?!...)` 안에 있는 패턴이 "Java" 뒤에 바로 나오지 않을 때만 "Java"를 매칭합니다.
### 예제와 함께 이해하기
#### 예제 1: 단순한 예
정규 표현식: `Java(?!Script)`
이 정규 표현식은 "Java"라는 문자열 뒤에 "Script"가 오지 않는 경우에만 일치합니다.
- 일치하는 문자열:
- "I love Java."
- "Java is a programming language."
- 일치하지 않는 문자열:
- "JavaScript is different from Java."
- "I am learning JavaScript."
#### 예제 2: 문자열 검색
정규 표현식: `Java(?!Beans|FX)`
이 정규 표현식은 "Java"라는 문자열 뒤에 "Beans" 또는 "FX"가 오지 않는 경우에만 일치합니다.
- 일치하는 문자열:
- "Java is robust."
- "I enjoy Java programming."
- 일치하지 않는 문자열:
- "JavaBeans is a component architecture."
- "JavaFX is used for creating graphical user interfaces."
#### 정규 표현식의 동작 방식
1. "Java" 문자열을 찾습니다.
2. 찾은 "Java" 문자열 뒤에 `(?!...)` 안의 패턴이 존재하는지 확인합니다.
3. `(?!...)` 안의 패턴이 존재하지 않는 경우에만 "Java"를 일치시킵니다.
### 요약
- `Java`: 문자열 "Java"를 의미합니다.
- `(?!...)`: 부정형 전방탐색으로, 특정 패턴이 뒤따르지 않는 경우에만 일치시킵니다.
따라서 `Java(?!...)`는 "Java" 뒤에 특정 패턴이 오지 않는 경우에만 "Java"를 매칭하는 정규 표현식입니다. 이 구문은 복잡한 문자열 검색 조건을 정의하는 데 매우 유용합니다.
'게으른 개발자의 끄적거림' 카테고리의 다른 글
로깅 System.out.println() 쓰면 안되는 이유 (0) | 2024.07.29 |
---|---|
Java Null Pointer 역참조란? (0) | 2024.07.25 |
dll파일이란? (0) | 2024.07.16 |
Java throws Exception vs throw new Exception 차이점 (0) | 2024.07.15 |
클라우드(Cloud)란? (0) | 2024.07.11 |