테스트 사이트 - 개발 중인 베타 버전입니다

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

· 3년 전 · 1490 · 2

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개

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

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

그럼 날씨가 살짝 선선해졌는데 편안한 저녁 되세요~! ^-^

게시글 목록

번호 제목
17316
17315
17313
17312
17305
17304
17298
17294
17291
17285
17284
17279
17272
17271
17270
17262
17255
17248
17241
17238
17236
17220
17217
JavaScript 회원가입 2
17216
17214
17207
17205
17203
17201
17198