본문 바로가기

Java

[Java] 정규표현식

정규표현식이란 문자열중 원하는 패턴을 가진 문자열을 찾기 위해 해당 문자열의 패턴을 표현한 문자 식입니다.

 

^ : 문자열의 시작을 나타냅니다. 하지만 [] 안에 사용되면 not으로 쓰입니다.

$ : 문자열의 종료를 의미합니다.

. : 임의의 한 문자

ex) ^c.$ : c로 시작하는 두 글자 

* : * 기호 앞의 문자가 없을 수 도 있고 무수히 많을 수도 있다. 

ex) ^c.*$ : c로 시작하는 모든 문자 (= c로 시작하는 모든 임의의 문자) // c, c1, c12...

+ : + 기호 앞의 문자가 1개 이상

ex) ^c.+$ : c로 시작하는 두 글자이상 // c1, c2, ccc 

? :? 앞의 문자가 없거나 하나 있다.

ex) ^c.?$ : c 이거나 c로 시작하는 두 글자  

[] : 문자 집합의 범위를 나타낸다. ([a-z] : a부터 z까지 /  [^a-z] : a부터 z까지가 아닌 문자 )

ex) ^[a-c].+$ : a부터 c범위의 문자로 시작하는데 뒤의 문자는 임의의 문자가 1개 이상 올 수 있다.   

{} : {} 앞의 문자의 횟수 또는 범위를 의미한다. ( {2}는 2번 ,  {2, 6}는  2번에서 5번을 의미한다. )

ex) [a-c]{2} : a~c의 문자셋이 2번 반복합니다. // aa , ac , ca..

 () : () 안의 문자를 다른 문자로 인식합니다.

| : or과 동일 

\ : \다음에 일반문자가 오면 특수문자로, 특수문자가 오면 그 문자 자체를 의미합니다.

\b : 단어의 경계를 의미합니다.

\B : 단어가 아닌 것에 대한 경계를 의미합니다.

\A : 입력의 시작 부분을 의미합니다.

\G : 이전 매치의 끝을 의미합니다.

\Z  : 입력의 끝이지만 종결자가 있는 경우를 의미합니다.

\z : 입력의 끝을 의미합니다.

\s : 공백 문자를 의미합니다.

\S : 공백 문자가 아닌 나머지 문자를 의미합니다.

\w : 알파벳이나 숫자를 의미합니다.

\W : 알파벳이나 숫자가 아닌 문자를 의미합니다.

\d : 숫자를 의미합니다. [0-9]와 동일

\D : 숫자를 제외한 모든 문자를 의미합니다.

(?!) : 앞에 (?!)을 넣으면 대소문자는 구분하지 않겠다는 의미입니다.  

 

 

실습하기 좋은 사이트

 

 

Reference

 

'Java' 카테고리의 다른 글

[Java] static 초기화 블록  (0) 2023.07.17
[Java] BigInteger  (0) 2023.07.10
[Java] java.util.Objects를 이용한 NPE방어  (0) 2023.06.23
[Java] Wrapper Class  (0) 2023.06.21
[자바] 쉬프트 연산자  (0) 2023.06.15