언어는 라켓을 쓰고있습니다. 하지만 문법만 다를 뿐이지 정규식 자체는 거의 대부분의 프로그래밍 언어에 있으니까 라켓을 모르셔도 상관없으실듯 합니다.
(regexp-match* #rx"a." "abacadaeafag")
regexp-match* 는 정규식에 맞는 표현을 "모두" 찾아라 입니다
따라서 위의식은 정규식 "a." 에 맞는 표현을 "abacadaeafag" 에서 모두 찾아라 입니다
a. 는 정규식에서 "a하고 다음 아무문자" 라는 뜻이기 때문에
ab ac ad ae af ag 가 찾아집니다. 여기까지는 제가 이해한 바에 부합합니다.
(regexp-match* #rx"a.*" "abacadaeafag")
하지만 위의 결과는 제가 생각한 바가 아니네요.
a.* 는 "a 하고 다음 아무문자들(0개이상)" 이라는 뜻이기 때문에 맞는 모든 표현은
abacadaeafag abacadaeafa abacadaeaf abacadaea ... aba ab a
acadaeafag acadaeafa acadaeaf ... aca ac a
...
afag afa af a
ag a
이 모든 것들이 나와야합니다만 결과는 abacadaeafag 하나뿐이네요
Kleene star 저것이 항상 greedy 하게 맞는 부분중 가장 큰 부분을 매칭하기 때문에 이런 현상이 발생하는것으로 이해했는데요
그럼 제가 원하는것처럼 "a.*" 를 "abacadaeafag" 에서 모두 끄집어 내려면 어떻게 하면 될까요?
즉 ".*" 를 "123" 에서 모두 찾으면
123 12 1 23 2 3 이 다 나오게 하고 싶습니다
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.