Python 에서 앞뒤의 공백을 어떻게 제거합니까 문자열에서?
예를 들면 다음과 같습니다.
" Hello " --> "Hello"
" Hello" --> "Hello"
"Hello " --> "Hello"
"Bob has a cat" --> "Bob has a cat"
단 하나의 공간, 또는 모든 연속된 공백? 만약 두 번째 관심용 문장열 오스트리프 이미 ' ()' 방법:
>>> ' Hello '.strip()
'Hello'
>>> ' Hello'.strip()
'Hello'
>>> 'Bob has a cat'.strip()
'Bob has a cat'
>>> ' Hello '.strip() # ALL consecutive spaces at both ends removed
'Hello'
그러나 지루려면 만 필요한 경우 한 공간에 함께 할 수 있습니다.
def strip_one_space(s):
if s.endswith(" "): s = s[:-1]
if s.startswith(" "): s = s[1:]
return s
>>> strip_one_space(" Hello ")
' Hello'
또한 '스트리스트리프 절감뿐만 공백 문자 ()' 뿐만 아니라 다른 (예를 들면 탭들 및 줄 바꿈). 지루려면 전용 공간, 즉 ',' 스트립 인수로 제거하시겠습니까 문자를 지정할 수 있습니다.
>>> " Hello\n".strip(" ")
'Hello\n'
위에서 지적한 대로 대답을 에서
myString.strip()
앞뒤의 공백 문자 등, 모두 제거하면, \t \n \r, \f, 공간.
자세한 유연도를 다음을 사용합니다를
자세한 사항은 docs
이렇게 하면 모든 '공백' 에서 앞뒤의 제거하시겠습니까 미스트링.
myString.strip()
내가 하고 싶은 분리하십시오 공간에 너무 많은 문자열 (string) 도 아니라 단면이거나 끝 사이에 있는 초). 이 때문에 t know how to do I, i made don& # 39, 그렇지 않은 경우에는:
string = "Name : David Account: 1234 Another thing: something "
ready = False
while ready == False:
pos = string.find(" ")
if pos != -1:
string = string.replace(" "," ")
else:
ready = True
print(string)
이 우주 공간에 한 번 더 이상 없을 때까지 공백을 연산뿐 덮어씁니다
그래서 내가 만든 해법을 찾을 수 없음 내가 찾고 있었던 일부 사용자 정의 총괄하였습니다. 아웃하라는 시도해 볼 수 있습니다.
def cleansed(s: str):
""":param s: String to be cleansed"""
assert s is not (None or "")
# return trimmed(s.replace('"', '').replace("'", ""))
return trimmed(s)
def trimmed(s: str):
""":param s: String to be cleansed"""
assert s is not (None or "")
ss = trim_start_and_end(s).replace(' ', ' ')
while ' ' in ss:
ss = ss.replace(' ', ' ')
return ss
def trim_start_and_end(s: str):
""":param s: String to be cleansed"""
assert s is not (None or "")
return trim_start(trim_end(s))
def trim_start(s: str):
""":param s: String to be cleansed"""
assert s is not (None or "")
chars = []
for c in s:
if c is not ' ' or len(chars) > 0:
chars.append(c)
return "".join(chars).lower()
def trim_end(s: str):
""":param s: String to be cleansed"""
assert s is not (None or "")
chars = []
for c in reversed(s):
if c is not ' ' or len(chars) > 0:
chars.append(c)
return "".join(reversed(chars)).lower()
s1 = ' b Beer '
s2 = 'Beer b '
s3 = ' Beer b '
s4 = ' bread butter Beer b '
cdd = trim_start(s1)
cddd = trim_end(s2)
clean1 = cleansed(s3)
clean2 = cleansed(s4)
print("\nStr: {0} Len: {1} Cleansed: {2} Len: {3}".format(s1, len(s1), cdd, len(cdd)))
print("\nStr: {0} Len: {1} Cleansed: {2} Len: {3}".format(s2, len(s2), cddd, len(cddd)))
print("\nStr: {0} Len: {1} Cleansed: {2} Len: {3}".format(s3, len(s3), clean1, len(clean1)))
print("\nStr: {0} Len: {1} Cleansed: {2} Len: {3}".format(s4, len(s4), clean2, len(clean2)))
, 로 지정된 스케쳐내 트리밍할 왼쪽 및 오른쪽 공간을 통해 이 작업을 수행할 수 있었습니다.
def remove_outer_spaces(text, num_of_leading, num_of_trailing):
text = list(text)
for i in range(num_of_leading):
if text[i] == " ":
text[i] = ""
else:
break
for i in range(1, num_of_trailing+1):
if text[-i] == " ":
text[-i] = ""
else:
break
return ''.join(text)
txt1 = " MY name is "
print(remove_outer_spaces(txt1, 1, 1)) # result is: " MY name is "
print(remove_outer_spaces(txt1, 2, 3)) # result is: " MY name is "
print(remove_outer_spaces(txt1, 6, 8)) # result is: "MY name is"