긴 텍스트 문자열에서 모든 줄 바꿈 제거
기본적으로 콘솔에 텍스트 문자열을 입력하도록 요청하지만 문자열이 매우 길고 줄 바꿈이 많이 포함되어 있습니다. 사용자의 문자열을 가져 와서 모든 줄 바꿈을 삭제하여 한 줄의 텍스트로 만드는 방법은 무엇입니까? 문자열을 얻는 방법은 매우 간단합니다.
string = raw_input("Please enter string: ")
사용자와 문자열을 잡아야하는 다른 방법이 있습니까? Mac에서 Python 2.7.4를 실행하고 있습니다.
PS 분명히 나는 멍청한 사람이므로 솔루션이 가장 효율적이지 않더라도 가장 간단한 구문을 사용하는 솔루션을 높이 평가할 것입니다.
줄 바꿈을 raw_input
어떻게 입력 합니까? 그러나 일단 문자가 포함 된 문자열이 있으면 제거하고 싶을뿐입니다 replace
.
>>> mystr = raw_input('please enter string: ')
please enter string: hello world, how do i enter line breaks?
>>> # pressing enter didn't work...
...
>>> mystr
'hello world, how do i enter line breaks?'
>>> mystr.replace(' ', '')
'helloworld,howdoienterlinebreaks?'
>>>
위의 예에서는 모든 공백을 바꿨습니다. 문자열 '\n'
은 개행을 나타냅니다. 그리고 \r
캐리지 리턴을 나타냅니다 (창문에있는 경우이를 얻을 수 있으며 두 번째 replace
로 처리 할 수 있습니다!).
원래:
# you probably want to use a space ' ' to replace `\n`
mystring = mystring.replace('\n', ' ').replace('\r', '')
또한 변수를 호출하는 것은 좋지 않습니다 . string
이 경우 모듈이 어두워 string
집니다. 피하고 싶지만 때때로 사용하고 싶은 또 다른 이름 : file
. 같은 이유로.
string replace를 사용해보십시오.
string = string.replace('\r', '').replace('\n', '')
분리 자 인수가없는 문자열을 분리 할 수 있으며, 연속 공백은 단일 분리 문자 (개행 및 탭 포함)로 처리합니다. 그런 다음 공백을 사용하여 참여하십시오.
In : " ".join("\n\nsome text \r\n with multiple whitespace".split())
Out: 'some text with multiple whitespace'
https://docs.python.org/2/library/stdtypes.html#str.split
Xbello
의견에 따라 업데이트 :
string = my_string.rstrip('\r\n')
또 다른 옵션은 정규식입니다.
>>> import re
>>> re.sub("\n|\r", "", "Foo\n\rbar\n\rbaz\n\r")
'Foobarbaz'
고려하는 방법
- 문자열의 시작 / 끝에 추가 흰색 문자
- 모든 줄의 시작 / 끝에 추가 흰색 문자
- 다양한 엔드 라인 문자
지저분한 여러 줄 문자열이 필요합니다. 예 :
test_str = '\nhej ho \n aaa\r\n a\n '
멋진 한 줄 문자열을 생성합니다.
>>> ' '.join([line.strip() for line in test_str.strip().splitlines()])
'hej ho aaa a'
업데이트 : 여분의 공백을 생성하는 여러 줄 바꾸기 문자를 수정하려면 다음을 수행하십시오.
' '.join([line.strip() for line in test_str.strip().splitlines() if line.strip()])
이것은 다음에 대해서도 작동합니다. test_str = '\nhej ho \n aaa\r\n\n\n\n\n a\n '
rstrip의 문제점은 모든 경우에 작동하지 않는다는 것입니다. 대신-text = text.replace ( "\ n", "")를 사용하면 공백이있는 모든 새 줄 \ n이 제거됩니다.
귀하의 투표에 미리 감사드립니다.
참고 URL : https://stackoverflow.com/questions/16566268/remove-all-line-breaks-from-a-long-string-of-text
'programing tip' 카테고리의 다른 글
psql을 사용할 때 postgres에서 스키마를 선택하는 방법은 무엇입니까? (0) | 2020.07.30 |
---|---|
BoxLayout을 공유 할 수 없습니다 오류 (0) | 2020.07.30 |
Flask에서 SQLAlchemy 결과 세트를 jsonify (0) | 2020.07.30 |
bash : 나쁜 대체 (0) | 2020.07.30 |
로컬 호스트에 대해 신뢰할 수있는 자체 서명 SSL 인증서 작성 (Express / Node와 함께 사용) (0) | 2020.07.30 |