1. 정규식은 재귀적인 패턴처리가 불가능하다.
정규언어<푸시다운<튜링완전 뭐 이런 계층이 있었던거같은데, 아무튼 푸시다운부터 재귀적인 처리가 가능하고 정규식은 그 밑이라 불가능함.
이게 상당히 문제인게 올바른 괄호쌍같은 기출문제 푸는게 안된다는거임. a와b의 개수가 같은 문자열 뭐 이런거도 불가능하고.
정규식으로 풀 수 있다는 확신이 생길때만 정규식을 쓰도록 하자. 아니면 시간만 날리니까
좀 보니까 HTML태그분석을 정규식으로 했다는말도 있던데 그거는 뭔가 잘못되었을 가능성이 높음
2. 정규식을 처음 실행할때(=DFA로 변환하는게) 시간이 패턴길이에 지수적이다(출처).
일단 DFA로 변환되고나면 패턴체크는 O(문자열길이)이니까 로컬에서 잘 돌아가면 상관은 없을텐데 아무튼 찝찝한부분이긴 함
숏코딩할거 아니면 정규식의 장점을 잘 모르겠어서 그냥 코드로 짜는게 낫다고 생각함
그럭구나 쓸 수 있을 땐 쓰고 정규표현식으로 해결 불가능한 문제도 많을테니 그 때에 대비해서 다른 방법도 생각해 둬야겄네 HTML 태그 파싱은 '맞았습니다!!' 받아서 넘어갔음
Non-greedy로 매칭해도 HTML 태그가 딱 잘리지 않는 경우가 꽤 많더라 그래서 가장 내부에 있는 태그는 그 내부에 <나 >가 없다는 걸 이용해서 해당하는 문자열이 없을 때만 매칭하도록 설정했음
근데 어차피 정규식으로 비벼지는 문제가 애초에 별로 안 나옴