def remove_whitespaces(value):
"Remove all whitespaces"
p = re.compile(r'\s+')
return p.sub(' ', value)
위의 코드는 태그를 제거하지만 "all"공백을 값에서 제거하지 않습니다.공백 제거 용 정규식
감사
def remove_whitespaces(value):
"Remove all whitespaces"
p = re.compile(r'\s+')
return p.sub(' ', value)
위의 코드는 태그를 제거하지만 "all"공백을 값에서 제거하지 않습니다.공백 제거 용 정규식
감사
가장 빠른 일반적인 접근 방식은 문자열의 빠르고 강력한 .translate
방법에 찬성 된 RE를 피하고 파이썬 2. * 문자열, 즉 bytestrings - 유니 코드의 문자열 '.translate
은 약간 다릅니다. 유니 코드 문자열에서 유니 코드 문자열에 대한 ord
값 또는 None
값의 매핑이어야하는 단일 인수가 필요합니다. 삭제. 즉, dict
의 편리한 .fromkeys
classmethod의 활용 :
nospace = dict.fromkeys(ord(c) for c in string.whitespace)
def unicode_remove_whitespace(value):
return value.translate(nospace)
정확히 같은 문자 세트를 제거 할 수 있습니다. 물론 유니 코드에는 공백으로 간주하여 제거하려는 문자가 더 많습니다. 따라서 string 모듈을 기반으로하는이 간단한 방법을 사용하는 대신 모듈 unicodedata의 정보를 기반으로 매핑 unicode_nospace
을 작성하려고합니다.
p.sub(' ', value)
는
p.sub('', value)
전 대체하는 단일 공간, 아무것도 후자을 대체 모든 공백해야한다.
value.join (p.split())
''.join (value.split())이 효과가 있습니까? 이에 "일반"적용, 2.6에서
import string
identity = string.maketrans('', '')
def remove_whitespace(value):
return value.translate(identity, string.whitespace)
, 그것은 더 간단 그냥
return value.translate(None, string.whitespace)
참고 :
나는 '' '.join (value.split())' –
을 의미한다고 생각합니다. 예, 고맙습니다. 너무 빨리 읽었습니다. –
기능이 경우에는 잘 작동합니다.
@OP 외부 정규식 패턴을 컴파일하십시오. 따라서 프로 시저를 사용할 때마다 re.compile을 호출 할 필요가 없습니다. 또한 공백을 제거하지 않는 한 공간으로 대체 하시겠습니까?
p = re.compile(r'\s+')
def remove_whitespaces(p,value):
"Remove all whitespaces"
return p.sub('', value)
마지막으로, 정규 표현식을 사용하지 않는 다른 방법은 공백에 분할
이def remove_whitespaces(value):
"Remove all whitespaces"
return ''.join(value.split())
이
re.sub('\s*', '', value)
도 작동해야 다시 합류하는 것입니다!
점점 더 우스꽝스러워지고 있습니다. 이 코드가 무엇을하는지 이해합니까? – SilentGhost
예, 정규 표현식 부분은 제외합니다. – 3zzy
그리고 뭐가 그렇게 우스운가요? 몇 시간 후에 몇 가지 질문을하는거야? Thats "우스운"? – 3zzy