HTML 태그를 뽑아내려고 정규식을 짰는데 두 가지 문제가 생겨서 질문드립니다.
첫째, 아래처럼 입력이 있을 때
입력: <b>one</b> <i>two</i>
패턴: /<.*>/
이렇게 하면 <b> 하나만 잡힐 줄 알았는데 <b>one</b> <i>two</i> 통째로 다 삼켜버리더라고요. /<.*?>/ 로 바꾸니까 <b>만 잡히긴 하는데, 앞에 물음표 하나 붙었다고 왜 이렇게 달라지는 건지 원리를 정확히 모르겠어요.
둘째, 이건 더 심각한데 아래 패턴이요.
패턴: /(a+)+$/
입력: "aaaaaaaaaaaaaaaaaaaaX"
a가 좀 길게 오다가 매칭 안 되는 문자가 붙으면 응답이 몇 초씩 걸리다가 아예 서버가 뻗어버립니다. 입력 길이는 얼마 안 되는데 왜 이렇게 느려지는 걸까요? 두 문제 다 원리랑 해결법 알려주시면 감사하겠습니다.