문자열을 공백으로 3 개의 요소로 분할하고 싶지만 따옴표로 묶은 부분 문자열을 분할하지 마십시오 (따옴표를 이스케이프 처리하기 위해 백 슬래시를 포함 할 수도 있음). 예를 들어인용 부호가있는 부분 문자열을 보존하여 N 개의 요소를 공백으로 분할하십시오.
:
"command argument other arguments and options"
>> ['command', 'argument', 'other arguments and options']
'command "my argument" other arguments and options'
>> ['command', 'my argument', 'other arguments and options']
'command "my \"ugly\" argument" other "arguments" and options'
>> ['command', 'my "ugly" argument', 'other "arguments" and options']
나는이 similar question에보고했지만, shlex.split()
은 문자열의 끝을 분할합니다 (그것은 따옴표와 공백을 제거합니다) 나는 세 번째 요소를 유지하려는 반면, 손대지 않은.
처음 두 요소를 얻기 위해 shlex.split(mystring)[0:2]
을 사용하려고했지만 원래 문자열에서 세 번째 요소를 추출하는 좋은 솔루션을 찾을 수 없습니다. 사실 나는 maxsplit
인수와 함께 str.split()
메소드와 같은 shlex.split()
을 사용할 수 있기를 바랍니다.
shlex.split()
을 사용하는 것보다 더 효과적인 방법이 있습니까? 아마도 정규 표현식인가? 감사!
대단히 고마워요! – Nicolas