Python 정규식에서 | 문자를 포함한 OR 연산을 어떻게 하나요?

조회수 657회
import re
kor_txt = """가나다 ㄱㄴㄷ ㅏㅓㅐ        |        ㄲ킈ㅗ ㅗㅜㅑㅒfd|jkaFSA 498130$#@!*&^ %)(-_=+ []{}<>,./?'"`"')"""
# kor_txt = kor_txt.replace("|","")
print(re.sub('[^ㄱ-ㅎ|ㅏ-ㅣ가-힣|a-zA-Z|0-9 |`!@#$%^&*()\[\]{}\-\_\'\"><\/\?]', '', kor_txt))

결과: 
'가나다 ㄱㄴㄷ ㅏㅓㅐ        |        ㄲ킈ㅗ ㅗㅜㅑㅒfd|jkaFSA 498130$#@!*&^ %)(-_ []{}<>/?\'"`"\')'
원하는 결과:
'가나다 ㄱㄴㄷ ㅏㅓㅐ                ㄲ킈ㅗ ㅗㅜㅑㅒfdjkaFSA 498130$#@!*&^ %)(-_ []{}<>/?\'"`"\')'

위와 같이 정규표현식을 짰습니다. 문장 내에서 한글, 영어, 숫자, 키보드로 입력하는 특수문자를 제외한 모든 글자를 없애려고 하는데요, 정규표현식 or 연산을 쓰면 "|"문자가 포함됩니다. "|"문자가 계속 에러를 일으켜서 제외하고 싶은데, |연산자를 빼지 않으면 계속 결과처럼 결과에서도 |문자가 살아있습니다. 원하는 결과는 주석처리한 부분처럼 |가 제거된 문장입니다.

한글을 모두 포함하려면 ㄱ-ㅎ|ㅏ-ㅣ|가-힣으로 작성해야 한다던데, 이런 경우 어떻게 해결해야 하나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)