파이썬 정규식 오류 (Python regular expression error)
소개
파이썬으로 코딩을 하다보면, 문자열로 작업을 해야할 때가 많습니다. 이때 정규식(regular expression)을 사용하면 유용한 경우가 많습니다. 하지만, 정규식도 잘 못 사용하면 에러가 발생할 수 있습니다. 이번 포스팅에서는 파이썬에서 발생하는 정규식 오류를 중심으로 다뤄보겠습니다.
오류 메시지가 나오는 경우
파이썬에서 정규식을 사용할 때, 정규식에 맞지 않는 문자열을 사용하면 다음과 같은 메시지가 출력됩니다.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/re.py", line 141, in search
return _compile(pattern, flags).search(string)
TypeError: expected string or buffer
이 에러 메시지는 “문자열이나 버퍼형태의 값이 필요합니다” 라는 메시지입니다. 이 메시지는 일반적으로 정규식이나 문자열이 잘못된 것입니다.
정규식 명령어에서 발생하는 오류
파이썬에서 정규식을 사용할 때, 특별한 명령어를 사용하는 경우가 있습니다. 이때 발생하는 오류도 많으므로 유의해야 합니다.
1. ‘^’ 또는 ‘$’를 사용하지 않았을 때
‘^’또는 ‘$’는 각각 문자열의 시작과 끝을 의미합니다. 이 명령어를 사용하지 않았을 경우에는 ‘no match’ 오류가 발생합니다.
2. ‘.’ 명령어에서 발생하는 오류
‘.’는 단일 문자를 의미합니다. 이것을 사용할 경우에는 ‘no match’ 오류가 발생할 수 있습니다.
3. ‘|’ 명령어에서 발생하는 오류
‘|’는 주어진 문자열 중 하나와 일치하는 문자열을 찾습니다. 이것을 사용할 경우에는 ‘no match’ 오류가 발생할 수 있습니다.
4. ‘\d’ 또는 ‘\D’ 명령어에서 발생하는 오류
‘\d’는 숫자를, ‘\D’는 숫자가 아닌 것을 의미합니다. 이 명령어를 사용할 경우에는 ‘unterminated character set’ 오류가 발생할 수 있습니다.
결론
파이썬에서 정규식을 사용할 때, 발생할 수 있는 오류에 대해 알아보았습니다. 주요 오류 사항은 ‘^’또는 ‘$’ 명령어, ‘.’ 명령어, ‘|’ 명령어, ‘\d’ 또는 ‘\D’ 명령어에서 발생하는 오류입니다. 다음에 정규식을 사용할 때, 이러한 오류를 방지할 수 있도록 유의해야 합니다.