*앞에 등장하는 어떠한 패턴이 몇번 등장하는가에서
0에서 여러개
즉, 있을수도 있고 없을 수도 있다는 것이다.
별표 앞에있는 어떠한 문자가 있을 수 도 있고, 없을 수 도 있다는 뜻이다.
옇튼 수량자라는 것에 대해서 살펴보면
a*b라고 돼있다.
이것의 뜻은
a와 b가 있을 때
a의 뒤에 별표가 붙어있기 때문에
a가 있을 수도 있고, 없을 수도 있다.
그리고 만약에 있다고해도 여러개 일 수 도있다는 것이다.
그렇기 때문에 보통 기준점은 b로 잡는것이 편하다.
b를 봤을 때 a가 앞에 하나가 있는것도 a*b의 조건을 만족하고
2개가 있어도 그 조건을 만족한다.
그리고 All matches에 b앞에 a가 하나 있는것도 *의 조건을 해당되기 때문에
선택이 되고, b앞에 a가 없더라고 조건이 만족이 되면서 b가 선택이 된다.
그 다음으로 살펴볼 것은 +(더하기)
+ :
하나에서 여러개를 의미한다.
즉, 1개라도 없는것은 이 조건에 해당이 되지 않는다.
a+b라고 하게 되면 b앞에 a가 오게 되는데
반드시 a가 하나 이상이여야 된다는 것이다.
case2의 All matches의
3그룹 중에서 첫번째 그룹의
b앞에 a가 2개가 왔기 때문에 첫번째 그룹이 선택이 됬고
두번째 그룹은 b앞에 a가 하나가 왔기 때문에 두번째 그룹이 선택이 됐으나
마지막 3번째 그룹에는 b앞에 a가 하나도 없기 때문에 아무것도 선택 되지 않았다.
?(물음표) :
없거나 1개인 경우이다.
사용자가 a?b라고 하면
b앞에 a가 없을 수도 있고, 또는 하나인 경우.
여러개인 경우에는 선택되지 않는다.(뭐가?!)
옇튼 그렇기 때문에
All matches에서 첫번째 그룹에서
b앞에 a가 한개만 선택이 됐고, 다른 것들과는
다르게 a가 선택되지 않았다.
역시 2번째 그룹에서도 b앞에 a가 있었기 때문에 선택이 됬고
마지막으로 세번째는 b앞에 a가 없어도 조건이 성립되기 때문에
b가 선택이 된다.