I

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

3542390083_1653555332.9468.png

 

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개

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

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

그럼 날씨가 살짝 선선해졌는데 편안한 저녁 되세요~! ^-^
댓글을 작성하시려면 로그인이 필요합니다. 로그인

개발자팁

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

+
분류 제목 글쓴이 날짜 조회
PHP 3년 전 조회 1,462
Mobile 3년 전 조회 1,435
PHP 3년 전 조회 2,385
MySQL 3년 전 조회 2,998
OS 3년 전 조회 2,092
JavaScript 3년 전 조회 1,583
PHP 3년 전 조회 1,586
기타 3년 전 조회 1,344
PHP 3년 전 조회 4,630
PHP 3년 전 조회 1,615
기타 3년 전 조회 1.2만
기타 3년 전 조회 2,452
기타 3년 전 조회 6,521
기타 3년 전 조회 3,767
기타 3년 전 조회 1,555
JavaScript 3년 전 조회 1,726
기타 3년 전 조회 1,315
기타 3년 전 조회 1,519
기타 3년 전 조회 1,354
웹서버 3년 전 조회 2,247
PHP 3년 전 조회 1,379
PHP 3년 전 조회 2,084
PHP 3년 전 조회 1,575
JavaScript 3년 전 조회 2,185
JavaScript 3년 전 조회 2,115
기타 3년 전 조회 1,474
JavaScript 3년 전 조회 2,033
기타 3년 전 조회 1,389
기타 3년 전 조회 2,339
웹서버 3년 전 조회 3,411
🐛 버그신고