정규표현식 훑기

기존 생활코딩의 동영상 강의의 내용을 이미지 캡쳐 화면으로 빠르게 훑어 볼 수 있는 모듈입니다.

Page 17

case 1 :

r뒤에 어떤 문자가 오는데, 그 수량은

없을수도 있고 무수히 많을수도 있다.

 

 

case 2 :

수량자 뒤에 물음표 (?)가 오게 되면

그 수량자의 의미가 맥락상 달라지게 된다.

 

원래의 ?의 의미는 0~1이다

*의 의미는 0~1~무한대이다.

그래서 *뒤에 물음표가 뒤에 붙게되면

*에서 가장 적은 수량에 해당하는 0의 의미를 갖게 된다.

 

즉, *의 의미가 ?로 인해서 0이 된다.

그렇기 때문에 r뒤에 있는 .(애니케릭터)은 사용되지 않게 된다.

 

그 결과

r뒤에 .이 있음에도 불구하고 r만 선택이 된것을 볼 수가 있다.

 

 

 

 

case 3 :

r.+ 라고 하면

r뒤에 어떤 문자가 오는데, 그 문자의 수량은 반드시 하나 이상이여야 된다는 뜻이다.

 

case 4 :

그런데 그 뒤에 물음표가 나왔다.

 

즉, 더하기라는 수량자 뒤에 물음표가 나오면

r뒤에 문자 하나만을 선택하는 패턴이 된다.

 

+는 1~무한대 인데

이것이 ?에 의해서 무한대의 의미는 없어지고

1에 의미를 갖는다.

 

 

case 5 :

r 뒤에 어떠한 문자가 없을수도 있고 하나일수도 있다는 뜻에서

2개씩 선택이 된것이다.

 

 

case 6 :

물음표가 갖고 있는 0~1이라는 의미에서

뒤에 물음표가 붙게 되면 앞쪽에 있는

더 작은 선택 수량이 선택되면서

그 앞에 있는 . 은 0개를 의미하고

그 이야기는 r만을 선택한다는 뜻이다.

 

 

 

그러면 여기서 궁금한것은 ?는 언재 쓰는걸까.

 

이렇게 따로따로 선택하고 싶을 때

 

만약에

.기호를 쓰게 되면 

div태그와 닫히는 div태그 사이에있는

어떠한 문자를 선택하는것인데.

이 문자는 .+이기 때문에 어떠한 택스트가

최소한 하나 이상인 문자를 선택한다는 것이다.

 

이렇게해서 선택을 했는데 결과는 어떻게 됐는가

 

보이는것처럼

 

이만큼이 끊겨서 선택되는것이 아니고

 

이렇게 통으로 선택이 된것이다.

 

</div>가 

중간에 있는 이것을 지목한것이 아니라

 

이 문장의 맨 끝에 있는 </div>를 선택했기 때문에

 

모두가 선택이 된것이다.

 

이러한 방식을 탐욕적인 수량자라고 한다.

 

Greedy이라고 한다.

 

이렇게 +뒤에 ?를 넣어주면

2블럭 단위로 선택이 된다.

 

 

 

이러한 방식을 게으른 선택자라고한다.

영어로는 lazy 컨티파이어(귀찮해서 안쓴다)

댓글

댓글 본문