정규 표현식

김재령·2022년 2월 25일
0

JAVA

목록 보기
1/1
post-thumbnail

정규 표현식

정규 표현식에서 사용하는 메타 문자(meta characters)에는

.     ^      $        *         +        {      }      [      ]     \     |     (     )

※ 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자

문자 클래스(character class) [ ]

[a-c] == [abc][0-5] == [012345]

🟡 [a-zA-Z] : 알파벳 모두
🟡 [0-9] : 숫자

\d - 숫자와 매치, [0-9]와 동일한 표현식이다.
\D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.
\s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.
\S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.
\w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]와 동일한 표현식이다.
\W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식이다.
\b - 단어의 경계
\B - 단어가 아닌것에 대한 경계
\A - 입력의 시작 부분
\G - 이전 매치의 끝
\Z - 입력의 끝이지만 종결자가 있는 경우
\z - 입력의 끝
(?!) - 앞부분에 (?!)라는 옵션을 넣어주게 되면 대소문자는 구분하지 않는다

※대문자와 소문자는 반대

Dot(.)

\을 제외한 모든 문자와 매치됨

"a + 모든문자 + b"

-> a와 b라는 문자 사이 어떤 문자가 들어와도 모두 매치된다

※a[.]b

-> "a + Dot(.)문자 + b"

반복 (*) - 반복횟수 시작:0

ca*t

정규식 문자열 Match여부
ca*t ct Yes
ca*t cat Yes
ca*t caaat Yes

반복 (+)- 반복횟수 시작:1

ca+t

정규식 문자열 Match여부
ca+t ct No
ca+t cat Yes
ca+t caaat Yes
### 반복 ({m,n}, ?)

1. {m}

ca{2}t

->"c + a(반드시 2번 반복) + t"
정규식 문자열 Math여부
ca{2}t cat No
ca{2}t caat Yes
#### 2. {m, n}

ca{2,5}t

->"c + a(2~5회 반복) + t"
정규식 문자열 Math여부
ca{2,5}t cat No
ca{2,5}t caat Yes
ca{2,5}t caaat Yes
#### 3. ? ? 메타문자가 의미하는 것은 {0, 1} 이다.

ab?c

정규식 문자열 Math여부
ab?c abc Yes
ab?c ac Yes

^ => 문자열 시작
$ => 문자열 종료
()=> 소괄호 안의 문자를 하나의 문자로 인식
| => 패턴 안에서 or 연산을 수행할 때 사용
\ => 정규 표현식 역슬래시()는 확장문자 (역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미)

01[016-9] -\d\d\d\d-\d\d\d\d
01[016-9] -^\d{3,4} -\d{4}
^01[016-9] -^\d{3,4} -\d{4}$

profile
with me

0개의 댓글