절세미인 노트북 – 후지쯔 Q2010

이번에 정들었던 카메라를 팔면서 앞으로 광역적인 활동을 지원해주기 위한 노트북을 구매하였다.

그 이름도 바로 후지쯔 Q2010이다.

그 비싸고 가격대비 성능 안나오지만 스타일리쉬가 먹어준다는 그녀석을 “중고”로 사가지고 왔다.

첫인상은 뭐랄까, 너무 가볍다? 정말 노트북이 나올수 없는 무게이다. 자꾸 들떄마다 내 머리속에 예측한 무게보다 훨씬 찾아 손목이 긴장하게 되곤 한다.

사용자 삽입 이미지
정말 잘 빠졌다. 두깨가 2센티미터조차 되지 않는다.

사용자 삽입 이미지
역시 스타일리쉬 하다; 근데 좀 딲고 찍을껄 그랬나; 상판에 지문이 좀 묻어나는게 단점이긴 하다.

사용자 삽입 이미지
환상의 두깨, 999g그람의 가벼운 무게…정말 이동성과 뽀대를 중시하는 사람이라면 탐날만한 물건이다.

배터리 용량이 환상적으로 딸리는것 빼고는 어디 나무랄게 전혀 없는 녀석이다. 그래서 중형으로 배터리를 하나 구매하였다. 가격은 현재 121,000원이다. 참고하시길.

배터리 문제가 해결되니 단점이 보이지 않는 녀석이 되어버렸다. 단점을 꼽아보자면 “너무 가볍다?”

예제로 이해하는 정규식 (Regular Expression)

다음의 예제로 정규식을 이해해 봅시다.

[code]#set $a = “hello”#
#set $b = [“hello”, “world”]#
#print $a#
#stop#[/code]

조건 :
1. 모든 문장은 #로 시작해서 #로 끝난다
2. #로 시작하여 공백이 나오거나 #로 끝나기 전까지는 영어 소문자만 가능하다
3. 이후 나오는 문자는 영어 소문자, $, =(1~2개), [, “, ,(콤마),  (공백) 만 사용가능하다
4. 큰따옴표 “”사이의 문자는 아무런 제약을 받지 않는다. 모든 문자 및 특수문자 사용가능
5. [“hello”, “world”]같은식으로 두개이상의 아무런 제약을 받지 않는 큰따옴표 문자가 존재한다 (4번 규약 무한 반복 가능)
6. 두개이상의 공백이 있을수 있다

나의 경우에는 먼저 여러종류의 사용가능한 코드를 생각해 내고 거기에 맞추어 조건을 생각해 냈다.

이제 내가 원하는 문자만 검색할수 있도록 해보자.

1. 모든 문장은 #로 시작해서 #로 끝난다는 조건이 있다. 일단 그 사이에는 어떤 문자가 있어도 상관없다.
시작과 끝을 #로 한다고 하니 #로 설정한다. 그 중간에는 우선 어떤 문자가 와도 상관없으니 아무문자와 매치 되는 .을 쓰고 0개~무한 반복을 뜻하는 *을 쓰자. 혹시 한개이상의 문자가 필요하다면 +를 사용하면 된다.
결과 : #.*#

2. #로 시작하여 공백이 나오거나 #로 끝날때까지는 영어 소문자만 가능하다고 한다. 영어 소문자 리스트에 Arrange설정을 하자. 공백이 있어도 되고 없어도 되는 경우이므로 0~무한 매치인 *를 사용한다. 있는 경우에는 2개 이상이 될수도 있음을 분명히 하자. 공백문자(스페이스, 탭등)을 뜻하는 [\s]를 사용하자. [[:space:]]와 같은 문법도 클래스 형태로 제공하므로 사용해도 된다.
결과 : #[a-z]+[\s]*#

3. 이후 나오는 문자는 변수명과 = [ , ” (공백) 등만 사용 가능하다. =는 1개나 2개만 사용가능하다는것도 잘 이해해 두자. ‘?’의 경우 반복없이 한번만 있을수도 있고 없을수도 있다는 뜻이다.
큰따옴표 안에는 아무런 제약을 받지 않는다고 한다. .*을 이용해 주면 모든 문자에 매치될수 있을것이다.
결과 : #[a-z]+[\s]*[a-z\$]+[\s]*={1,2}[\[]?[\s]*\”.*\”[\s]*[\]]?[\s]*#

4. “hello”, “world”같이 여러개가 설정 가능하다고 한다. 어떻게 해야 할까? 그룹()으로 설정하면 된다.
한개는 무조건 있어야 하는것이고 두번째부터는 없을수도 있고 여러개일수도 있다. (blahblah)*식으로 그 그룹에 정의된 단위대로 0개이상의 반복을 할수 있다.
결과 : #[a-z]+[\s]*[a-z\$]+[\s]*={1,2}[\[]?[\s]*\”.*\”([\s]*,\”.*\”)*[\s]*[\]]?[\s]*#


최종 결과 : 

#[a-z]+[\s]*[a-z\$]+[\s]*={1,2}[\[]?[\s]*\”.*\”([\s]*,\”.*\”)*[\s]*[\]]?[\s]*#

어떤가요?