본문 바로가기

정규식

정규식 정복기2

^\d.*

숫자로 시작하는가 확인

^ : 행의 맨 처음을 의미
\d : 0~9까지의 아라비아 숫자 1자를 의미
.* : 모든 문자를 의미. 즉 임의의 갯수의 글자들

true
false



.*\d$

숫자로 끝나는가 확인

^$: 행의 맨 끝을 의미

true
false



^\d+$

모두 숫자로 이루어졌는가 확인

^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분

true
true
false



^[+-]?\d*(\.?\d*)$

정수, 실수, +, -, 소수점 확인

^ : 행의 첫부분

[+-]? : 앞에 플러스 또는 마이너스 기호가, 없거나 1개 있다는 조건

\d* : 아라비아 숫자가 0이상의 개수로 있다는 조건. 즉 숫자가 없거나 여러 개 있음. 정수부의 0이 생략되어 0.123 이 .123으로 표현될 경우를 고려한 것입니다. 단 이때는 숫자가 아닌 마침표(.) 하나도 숫자로 간주되어 버리는 문제가 있습니다. 프로그래밍에서의 정규식에서는 이 문제를 걸러 주어야 할 것입니다.

(\.?\d*) : 소수부 처리 부분입니다. \.? 는 소수점이 없거나 1개 있다는 조건이고, \d* 는 0개 이상의 아라비아 숫자가 있다는 조건입니다. 소수점인 마침표(.)를, 정규식에서 "임의의 문자 1개"를 의미하는 마침표(.)와 구분하기 위해 앞에 백슬래쉬(\)를 붙였습니다. 또한 소괄호로 둘러싸서 소수부 처리 부분을 한묶음으로 만들었습니다.

$ : 행의 마지막

true
true
true
true
true
true
true
false
false



'정규식' 카테고리의 다른 글

JAVA 정규식 기본  (0) 2016.07.18
정규식 정복기 1  (0) 2012.08.02