Next: Extended Regular Expressions
Up: Using Metacharacters in Regular
Previous: Remembering Patterns with (,
  Contents
확장 정규식을 다루기 전에 먼저 알고 넘어갈 것이 있습니다. \<,
\> 문자는 vi에서 처음 사용된 것입니다. 따라서 다른 프로그램에서는
지원하지 않을 수도 있습니다. 또한 \{, \}도 새로 등장한
것입니다. 오래된 프로그램에서는 지원하지 않을 가능성이 높습니다. 초보자가
흥미를 잃는 가장 큰 이유는 바로 이런 것 때문입니다. 즉 정규식은 그 종류가
다양하고 또, 100% 지원하는 프로그램이 드물기 때문입니다.
그러나 최근에 만들어진 대부분의 프로그램들은 대부분의 정규식을 지원하기 때문에
사용자의 시스템이 특별히 오래된 것이 아니면 무난하게 쓸 수 있을 것입니다.
또 하나의 문제는 조금 골치가 아픈 것입니다. 예를 들어 A.*B는 `AAB'에도
해당하지만 `AAAABBBBABCCCCBBBAAAB'에도 해당합니다. 얼핏 보면 문제가 없을 것
같지만 심각합니다. 예를 들어 위의 긴 문자열은 자체가 A.*B에 매치될 수도
있지만 작게 쪼개면 `AAAAB'도 정규식에 해당하고 `AB'도 해당하고, 마지막 `AAAB'도
해당하는 등, 여러 가지 경우가 나옵니다. grep과 같은 프로그램은 단순히
주어진 정규식에 해당하는 줄을 출력해 주는 역할을 하므로 별 문제가 되지 않지만
sed와 같은 프로그램을 써서 정규식에 해당하는 표현을 다른 것으로 바꾼다고
할 때 문제가 발생합니다. 따라서 정규식을 써서 무언가를 바꾸거나 제거할 때에는
주의해야 합니다. 참고로 이런 경우에 정규식은 항상 가장 긴 문자열에
매치되려고3합니다.
1999-12-14