티스토리 뷰

의문을 가지곤 있었는데 구글링 키워드가 잘 떠오르지 않아 질문을 올리긴 귀찮고 꽤 오래 묵히고 있었다. 내용인 즉슨


https://regex101.com/r/FSjbBC/1


이게 어떤 이유로 오른쪽의 매치 결과가 나오는지 모르는 거였다. 특히 저 빈 매치가 왜 생기는지.


이제 설명하자면, 싱글라인 옵션이 걸리지 않은 정규식은 .이 [^\n]하고 같다고 볼 수 있다. 그래서 첫번째 매치가 한 줄만 대응하고 종료한다.


두번째 매치 시작 시엔 \n을 바로 앞에 둔 상태다. 때문에 아무것도 소모할 수 없어 빈 매치로 끝난다.


다음 매치 진행 시엔 직전에 빈 매치가 나온 상태기에 무시되고 매치는 실패된다. 그렇게 \n 문자는 매칭되지 않고 넘어간다.


세번째, 네번째 매치는 첫번째, 두번째와 동일하게 진행되고 다섯번째 매치는 매칭에 실패해 \n 문자를 넘어간 다음 매칭한 적이 없으므로 역시 한 번 0길이 매칭을 해준 다음 끝내는 것이다.


사이트에서 제공해주는 regex debugger를 봐도 알 수 있었을 텐데, 이유가 어렵다기보단 결과의 의외성이 큰 것 같다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함