문자열에서 트리밍할 공백을 어떻게 합니까?

Python 에서 앞뒤의 공백을 어떻게 제거합니까 문자열에서?

예를 들면 다음과 같습니다.

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"
질문에 대한 의견 (1)
해결책

단 하나의 공간, 또는 모든 연속된 공백? 만약 두 번째 관심용 문장열 오스트리프 이미 ' ()' 방법:

>>> ' 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'
해설 (14)

위에서 지적한 대로 대답을 에서

myString.strip()

앞뒤의 공백 문자 등, 모두 제거하면, \t \n \r, \f, 공간.

자세한 유연도를 다음을 사용합니다를

      • 만 절감뿐만 주요 공백 문자: '미스트린고드레스트리프 ()'
      • 만 절감뿐만 뒤에 공백 문자: '미스트린g. 스트리프 ()'
  • 특정 절감뿐만 공백 문자: '미스트린g. 스트리프 (& # 39, \n& # 39;)' 또는 '미스트린고드레스트리프 (& # 39, \n\r& # 39;)' 또는 '미스트린g. 스트리프 (& # 39, \n\t& # 39;)' 와 드릴링됩니다.

자세한 사항은 docs

해설 (2)

'스트립' 공백 문자를 인컨텍스트 국한된 것은 아니다.

# remove all leading/trailing commas, periods and hyphens
title = title.strip(',.-')
해설 (0)

이렇게 하면 모든 '공백' 에서 앞뒤의 제거하시겠습니까 미스트링.

myString.strip()
해설 (2)

운영까지도 스트립 ():

myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ]

for phrase in myphrases:
    print phrase.strip()
해설 (0)

내가 하고 싶은 분리하십시오 공간에 너무 많은 문자열 (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)

이 우주 공간에 한 번 더 이상 없을 때까지 공백을 연산뿐 덮어씁니다

해설 (1)

그래서 내가 만든 해법을 찾을 수 없음 내가 찾고 있었던 일부 사용자 정의 총괄하였습니다. 아웃하라는 시도해 볼 수 있습니다.

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)))
해설 (0)

, 로 지정된 스케쳐내 트리밍할 왼쪽 및 오른쪽 공간을 통해 이 작업을 수행할 수 있었습니다.

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"
해설 (0)