본문 바로가기
개발

[정규식]콤마로 구분된 값이 포함되어 있는지 검사하고 싶다면?

by 비손 2009. 7. 21.
20,30,50,20,60,k020,200,2050,dt,etm,djbk,1-3,392,203,20,7,5

이렇게 콤마로 구분된 값이 있습니다. 여기에서 '20'이라는 값만 찾아내고 싶다면 어떻게 할까요?

(?:^|,)(20)(?:,|$)

이러한 정규식을 쓰면 됩니다. 총 3개의 값을 찾아내는군요~

대충 해석하자면...
'?:'의 뜻은 캡쳐하지 않는 그룹이라는 뜻이구요
'|')(파이프)의 뜻은 '또는(or)'이라는 뜻입니다.
'^' 이건 시작문자구요
'$' 이건 끝 문자입니다.

즉, 맨 처음 시작하는 '20'이거나 앞에 ','가 있는 '20'이면서 뒤에 ','가 있거나 마지막인 문자를 찾는겁니다.

split을 이용해서 ','로 끊어버리는게 가장 쉬운 방법이겠지만, 혹여나 정규식을 쓸 상황이 생길까봐 포스팅 해 봅니다. 전 이걸 쓸 일이 생겨서 -_-;;