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

Python의 기본 메서드 중 하나인 문자열.isalnum() 메서드를 이용하면
문자열 내 특수문자 사용 여부를 알 수 있습니다.
"is alphabet or number"라는 그 이름에서 유추할 수 있듯이
.isalnum() 메서드는 문자열 내 모든 문자가 문자 또는 숫자인 경우에는 True,
그렇지 않은 경우에는 False를 반환합니다.
아래와 같은 문자열이 있다고 가정하죠 ^^
[code]
sample = '1234567890 abcdefghABCDEFGH 가나다라마 !@#$%^&*()_{}[]<>'
[/code]
Python에서는 문자열도 iterable한 개체로 취급하는 관계로
for문(다른 언어의 foreach에 해당)에 바로 넣을 수 있기 떄문에
다음과 같은 방법으로 문자열 내 특수문자를 제거할 수 있습니다.
[code]
result = ''
for s in sample:
if s.isalnum():
result += s
[/code]
=> 실행결과 : 1234567890abcdefghABCDEFGH가나다라마
List comprehension을 사용하면 위 네 줄의 스크립트를 다음과 같이 한 줄로 줄일 수 있습니다!
[code]
result = ''.join([s for s in sample if s.isalnum()])
[/code]
댓글 2개
3년 전
초보코딩을 벗어나서 딱 마주치는 문제가 파싱이나 크롤링의 문제인데 파이썬에는 이런 편한 메소드가 있네요.
크롤링 하면 파이썬이라는 말이 나온 것도 이유가 있었군요.
js 에서도 굳이 정규식 패턴을 만들지 않더라도 이런 유형의 메소드가 많았으면 좋겠습니다.
크롤링 하면 파이썬이라는 말이 나온 것도 이유가 있었군요.
js 에서도 굳이 정규식 패턴을 만들지 않더라도 이런 유형의 메소드가 많았으면 좋겠습니다.
Innisfree
3년 전
@비타주리 옙 말씀하신대로 웹 개발에서 Python이 꾸준히 일정 포션을 차지하는 이유가
Django나 Flask 덕분이기도 하지만 강력한 웹 크롤링 기능에 힘입은 것 같습니다.
문자열 처리 방면으로는 Perl이 정말 잘 만들어진 언어라는 생각이 드는데
이제는 완연히 사양길로 접어들어서 아쉽네요 ㅠㅠ
그럼 날씨가 살짝 선선해졌는데 편안한 저녁 되세요~! ^-^
Django나 Flask 덕분이기도 하지만 강력한 웹 크롤링 기능에 힘입은 것 같습니다.
문자열 처리 방면으로는 Perl이 정말 잘 만들어진 언어라는 생각이 드는데
이제는 완연히 사양길로 접어들어서 아쉽네요 ㅠㅠ
그럼 날씨가 살짝 선선해졌는데 편안한 저녁 되세요~! ^-^
게시글 목록
| 번호 | 제목 |
|---|---|
| 17927 | |
| 17926 | |
| 17922 | |
| 17921 | |
| 17915 | |
| 17910 | |
| 17907 | |
| 17892 | |
| 17888 | |
| 17879 | |
| 17878 | |
| 17874 |
JavaScript
글자수 제한 가장 쉬운판.중 하나
|
| 17873 | |
| 17872 |
PHP
포럼 출력소스 [ 샘플본 ]
|
| 17871 |
PHP
게시판별 카테고리 만들기.
|
| 17870 |
PHP
댓글이나 답글은 로직이 같다.
|
| 17869 |
PHP
카테고리 만드는 예제.
|
| 17868 | |
| 17866 |
JavaScript
문구 복사하기 자바스크립트
|
| 17865 | |
| 17864 | |
| 17863 |
PHP
랜덤값 만들기 겹치기는
|
| 17862 | |
| 17859 | |
| 17856 | |
| 17845 |
JavaScript
페이지 로딩 애니메이션
|
| 17835 | |
| 17834 |
PHP
데이타 1개 가져오기
5
|
| 17826 | |
| 17823 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기