2009-02-07 6 views
1

정확한 중복 : Split a string by spaces -- preserving quoted substrings -- in Python분할 인수 - 인용 문자열을 보존 - 파이썬에서


나는 문자열을 가지고 공백으로 구분하여 같은 값 목록, 사전 또는 튜플을 반환합니다. 그러나, 나는 인용 부호 사이에 어떻게 든있는 공간, 즉

사과 오렌지 "바나나 나무"녹색

세 가지 항목으로 돌아올 경우, "바나나 나무"인 하나의 전체 항목과 일치하지하려면 .

가능하면 큰 따옴표를 이스케이프해야합니다.

+0

의이 종류를 해결 utils.py 구현. –

+0

문제는 그러한 질문의 이름을 짓는 몇 가지 방법이 있다는 것입니다. 다른 질문을 놓친 것입니다. – Teifion

답변

-2
def splitstring(string): 
    """ 
    >>> string = 'apple orange "banana tree" green' 
    >>> splitstring(string) 
    ['apple', 'orange', 'green', '"banana tree"'] 
    """ 
    import re 
    p = re.compile(r'"[\w ]+"') 
    quoted_item = p.search(string).group() 
    newstring = p.sub('', string) 
    return newstring.split() + [quoted_item] 
+0

일부 입력에 실패합니다. try splitstring ('apple "foo bar"baz "qux"') –

+0

이것은 항목을 재정렬 할뿐만 아니라 인용 된 하나의 항목에 대해서만 작동합니다. –

1

이 문제는 태그 입력을 구문 분석과 같은 많은 당신은 살펴 수있는 소리 장고 태그가 정확한 중복된다는 사실을 분명하게 두 질문에 명칭 변경 문제

관련 문제