2와 4 사이의 다양한 공백으로 시작하는 텍스트 문자열이 있습니다.
선행 공백을 제거하는 가장 간단한 방법은 무엇입니까? (즉, 특정 문자 전에 모든 것을 제거 하시겠습니까?)
" Example" -> "Example"
" Example " -> "Example "
" Example" -> "Example"
답변
이 lstrip()
방법은 문자열 시작 부분에서 선행 공백, 줄 바꿈 및 탭 문자를 제거합니다.
>>> ' hello world!'.lstrip()
'hello world!'
편집하다
주석에서 지적했듯이 문자열의 시작 부분에서 공백 만 제거하려면 다음을 lstrip(' ')
사용해야합니다.
>>> ' hello world with 2 spaces and a tab!'.lstrip(' ')
'\thello world with 2 spaces and a tab!'
관련 질문 :
답변
이 함수 strip
는 문자열의 시작과 끝에서 공백을 제거합니다.
my_str = " text "
my_str = my_str.strip()
로 설정 my_str
됩니다 "text"
.
답변
단어 앞뒤에 공백을 자르고 싶지만 가운데 공백은 유지하십시오.
당신은 사용할 수 있습니다 :
word = ' Hello World '
stripped = word.strip()
print(stripped)
답변
특정 문자 앞에있는 모든 것을 제거하려면 정규식을 사용하십시오.
re.sub(r'^[^a]*', '')
첫 번째 ‘a’까지 모든 것을 제거합니다. [^a]
단어 문자와 같이 원하는 문자 클래스로 대체 할 수 있습니다.
답변
이 질문은 여러 줄 문자열을 다루지 않지만 다음은 파이썬의 표준 라이브러리 textwrap 모듈을 사용하여 여러 줄 문자열에서 선행 공백을 제거하는 방법 입니다. 우리가 다음과 같은 문자열을 가지고 있다면 :
s = """
line 1 has 4 leading spaces
line 2 has 4 leading spaces
line 3 has 4 leading spaces
"""
우리 print(s)
가 다음과 같은 출력을 얻는 다면 :
>>> print(s)
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3
그리고 우리가 사용한 경우 textwrap.dedent
:
>>> import textwrap
>>> print(textwrap.dedent(s))
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3