programing

문자열에서 영숫자가 아닌 모든 문자 바꾸기

abcjava 2023. 7. 30. 16:47
반응형

문자열에서 영숫자가 아닌 모든 문자 바꾸기

(a-z 또는 0-9)와 같이 표준 문자나 숫자가 아닌 모든 문자를 별표로 바꿀 문자열이 있습니다.예를 들어, "h^&ell'.|ow]{+old"는 "h*ell*o*w*w*w*w*world"로 대체됩니다."^&"과 같은 여러 문자는 별표 하나로 대체됩니다.제가 이걸 어떻게 해야 할까요?

레식스가 구조에 나섰습니다!

import re

s = re.sub('[^0-9a-zA-Z]+', '*', s)

예:

>>> re.sub('[^0-9a-zA-Z]+', '*', 'h^&ell`.,|o w]{+orld')
'h*ell*o*w*orld'

비단결 같은 방법.

print "".join([ c if c.isalnum() else "*" for c in s ])

여러 개의 연속적으로 일치하지 않는 문자를 그룹화하는 작업은 수행하지 않습니다.

"h^&i => "h**i것은 아니다."h*i"정규식 용액에서와 같이.

시도:

s = filter(str.isalnum, s)

Python3에서:

s = ''.join(filter(str.isalnum, s))

편집: OP가 비문자를 '*'로 바꾸기를 원한다는 것을 깨달았습니다.내 대답은 맞지 않습니다.

사용하다\W와 동등한.[^a-zA-Z0-9_]설명서, https://docs.python.org/2/library/re.html 을 확인하십시오.

import re
s =  'h^&ell`.,|o w]{+orld'
replaced_string = re.sub(r'\W+', '*', s)
output: 'h*ell*o*w*orld'

update: 이 솔루션에서는 밑줄도 제외됩니다.알파벳과 숫자만 제외하고 싶다면 nneono에 의한 해결이 더 적절합니다.

언급URL : https://stackoverflow.com/questions/12985456/replace-all-non-alphanumeric-characters-in-a-string

반응형