최상단

컨텐츠

[wargame.kr] regex!? write up. 정규표현식!.

글 정보

Category
WarGame
2014. 1. 23. 12:26

본문

정규표현식을 얼마나 잘 이해하고 있나를 확인하는 문제이다.


문제에 들어가면 소스보기가 있는데.


$pat="/^(([e]){1}J){2,}_l[^1-9,^a-z,^A-Z]".chr(118)."[?]{5,}".(19%4)."$/";


의 정규표현식에 매치되는 문자열을 입력하면 답을 보여주는 문제다.


저 정규표현식이 무슨 뜻인지만 확인하면 되는데. 일단 정규표현식을 확인하기 전에 위 문자열을 하나의 문자열로 합치는 작업을 해야한다.


chr(118) = 'v' 가 되고,

(19%4) = 3이 되므로, 위 표현식을 다시 풀어쓰면.


/^(([e]){1}J){2,}_l[^1-9,^a-z,^A-Z]v[?]{5,}3$/


이 된다.


이제 정규식이 무슨 뜻인지 확인해볼 차례이다.


http://www.regexper.com에 들어가면 정규표현식을 도식화하여 잘 보여준다.


위에서 추출했던 정규식을 넣으면 아래와 같은 그림을 보여준다.




이 그림을 잘 참조하여 시퀀스에 맞게 문자열을 입력해주면, 문제를 풀 수 있다. 그림이 너무 잘 그려져서 따로 설명도 필요 없을 것 같다;..


참고로 온라인에서 정규표현식을 테스트할 수 있는 사이트가 있다.


http://regexlib.com/ 에 들어가면 이미 잘 만들어져있는 정규표현식들을 구할 수도 있으며, 사이트에서 바로 정규표현식이 동작을 확인해볼 수도 있다. 




정규표현식에 대해서 궁금하다면, http://www.nextree.co.kr/p4327/ 이 글을 참조하면 좋을 것 같다.



트랙백과 댓글 여닫기

TOP