본문 바로가기

프로그래밍/JAVA

정규식 표현

정규식을 위한 특수문자 예약어 및 의미

 

^ : 문자열 처음 ex) ^a : 문자열 처음이 a로 시작함

$ : 문자열 끝 ex) a$ : 문자열 끝이 a로 끝남

+ : 앞 글자가 1개 이상 존재함  ex) a+ : a라는 글자가 1 이상이다.

* : 앞 글자가 0개 이상 존재함  ex) a* : a라는 글자가 없거나 반복된다.

? : 앞 글자가 없거나 1개 존재 ex) a? : a라는 글자가 없거나 1개만 있다.

. : 모든 글자

{} : 반복횟수 ex) a{3} : a라는 글자가 3번 반복됨. a{3,5} : a라는 글자가 3~5회 반복됨

[] : 문자열 그룹 ex) [abc] : a or b or c 문자 , 범위는 [a-zA-Z0-9] 같이 -기호로 표시

[^abc] : 해당 문자들을 제외함(not)

 () : 괄호안의 내용을 그룹화



\d : 숫자

\s : 공백문자

\S : 공백이 아닌문자

\w : 알파벳, 숫자, 언더바(_)




예제

1. 문자열에서 [ , ] 문자들을 찾아 제거하라

'[' , ']' 는 예약어이므로 예약어가 아닌 문자라는 의미로 '\[' 표기해야 한다.

하지만, 문자열내의 '\'는 다시 특수문자 예약어이기에 '\\[' 로 적어줘야 정상적이 표시가 이루어진다.

 

String value = "[test]";

String result = value.replaceAll( "[\\[\\]]", "");

 

2. < > 으로 쌓여진 문자열이 포함되는지 확인하라

<,> 는 별도의 정규식 예약어가 아니다. < 로 시작하고, >로 끊나는 문자열 들을 찾으면 된다.

 

<+ : < 문자가 1개 이상이어야 함.

>+ : > 문자가 1개 이상이어야 함.

[a-zA-Z]* : 알파벳(대/소)만을 가지며 그 수는 제한없음.

 

if( value.matches("<+[a-zA-Z]*>+") ) {

 

}


단순하게 <와 > 여부만 검사해도 된다. "<[^<|>]*>"


'프로그래밍 > JAVA' 카테고리의 다른 글

Apache HttpClient 관련 정리  (0) 2014.03.11
[JAVA TV] MHP 배경이미지 처리  (0) 2013.12.27
[JAVA TV] 타이머  (0) 2013.12.27
[awt] 이미지 읽기~  (0) 2013.12.17
GSON 간단 사용 예  (0) 2013.09.12
CRC16-CCITT crc생성함수  (0) 2012.10.04
ExecutorService  (0) 2012.05.11
클래스 동적 생성,호출 (리플렉션)  (0) 2010.09.04
이클립스(갈릴레오) SVN 설정  (0) 2009.11.12
쓰레드 기본  (0) 2009.11.10