[Python] 정규식을 사용하지 않고 문자열 내 특수문자를 제거하기 정보
기타 [Python] 정규식을 사용하지 않고 문자열 내 특수문자를 제거하기본문
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
3
댓글 2개
초보코딩을 벗어나서 딱 마주치는 문제가 파싱이나 크롤링의 문제인데 파이썬에는 이런 편한 메소드가 있네요.
크롤링 하면 파이썬이라는 말이 나온 것도 이유가 있었군요.
js 에서도 굳이 정규식 패턴을 만들지 않더라도 이런 유형의 메소드가 많았으면 좋겠습니다.
크롤링 하면 파이썬이라는 말이 나온 것도 이유가 있었군요.
js 에서도 굳이 정규식 패턴을 만들지 않더라도 이런 유형의 메소드가 많았으면 좋겠습니다.
@비타주리 옙 말씀하신대로 웹 개발에서 Python이 꾸준히 일정 포션을 차지하는 이유가
Django나 Flask 덕분이기도 하지만 강력한 웹 크롤링 기능에 힘입은 것 같습니다.
문자열 처리 방면으로는 Perl이 정말 잘 만들어진 언어라는 생각이 드는데
이제는 완연히 사양길로 접어들어서 아쉽네요 ㅠㅠ
그럼 날씨가 살짝 선선해졌는데 편안한 저녁 되세요~! ^-^
Django나 Flask 덕분이기도 하지만 강력한 웹 크롤링 기능에 힘입은 것 같습니다.
문자열 처리 방면으로는 Perl이 정말 잘 만들어진 언어라는 생각이 드는데
이제는 완연히 사양길로 접어들어서 아쉽네요 ㅠㅠ
그럼 날씨가 살짝 선선해졌는데 편안한 저녁 되세요~! ^-^