[Python] 정규식을 사용하지 않고 문자열 내 특수문자를 제거하기 > 개발자팁

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

[Python] 정규식을 사용하지 않고 문자열 내 특수문자를 제거하기 정보

기타 [Python] 정규식을 사용하지 않고 문자열 내 특수문자를 제거하기

본문

3542390083_1653555332.9468.png

 

Python의 기본 메서드 중 하나인 문자열.isalnum() 메서드를 이용하면

문자열 내 특수문자 사용 여부를 알 수 있습니다.

"is alphabet or number"라는 그 이름에서 유추할 수 있듯이

.isalnum() 메서드는 문자열 내 모든 문자가 문자 또는 숫자인 경우에는 True,

그렇지 않은 경우에는 False를 반환합니다.

 

아래와 같은 문자열이 있다고 가정하죠 ^^


sample = '1234567890 abcdefghABCDEFGH 가나다라마 !@#$%^&*()_{}[]<>'

 

Python에서는 문자열도 iterable한 개체로 취급하는 관계로

for문(다른 언어의 foreach에 해당)에 바로 넣을 수 있기 떄문에

다음과 같은 방법으로 문자열 내 특수문자를 제거할 수 있습니다.


result = ''
for s in sample:
    if s.isalnum():
        result += s

=> 실행결과 : 1234567890abcdefghABCDEFGH가나다라마

 

List comprehension을 사용하면 위 네 줄의 스크립트를 다음과 같이 한 줄로 줄일 수 있습니다!


result = ''.join([s for s in sample if s.isalnum()])
추천
3

댓글 2개

초보코딩을 벗어나서 딱 마주치는 문제가 파싱이나 크롤링의 문제인데 파이썬에는 이런 편한 메소드가 있네요.
크롤링 하면 파이썬이라는 말이 나온 것도 이유가 있었군요.
js 에서도 굳이 정규식 패턴을 만들지 않더라도 이런 유형의 메소드가 많았으면 좋겠습니다.
@비타주리 옙 말씀하신대로 웹 개발에서 Python이 꾸준히 일정 포션을 차지하는 이유가
Django나 Flask 덕분이기도 하지만 강력한 웹 크롤링 기능에 힘입은 것 같습니다.

문자열 처리 방면으로는 Perl이 정말 잘 만들어진 언어라는 생각이 드는데
이제는 완연히 사양길로 접어들어서 아쉽네요 ㅠㅠ

그럼 날씨가 살짝 선선해졌는데 편안한 저녁 되세요~! ^-^
전체 1,261
개발자팁 내용 검색 기타에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT