0

以下の文字列を分割したい:

  lin=' <abc<hd <> "abc\"d\" ef" '

の中へ

 [<abc<hd <>,  "abc\"d\" ef"]

ただし、私の問題は、を使用して文字列を分割するときですre.findall(r'"(.*?)"', lin, 0)。私は得る

['abc', 'ef'] 

Pythonで文字列を分割する方法を教えてください。

4

4 に答える 4

4

正規表現を使用したソリューションを次に示します。

import re
line = ' <abc<hd <> "abc\"d\" ef" ' 

match = list(re.findall(r'(<[^>]+>)\s+("(?:\"|[^"])+")', line)[0])

print(match)
#['<abc<hd <>', '"abc"d" ef"']

それを行う別の方法。

print(re.split(r'\s+(?=")', line.strip())) #split on white space only if followed by a quote.
#['<abc<hd <>', '"abc"d" ef"']     
于 2013-09-29T13:25:23.373 に答える
0
>>> lin=' <abc<hd <> "abc\"d\" ef" '
>>> lin.split('"', 1)
[' <abc<hd <> ', 'abc"d" ef" ']
于 2013-09-29T12:03:28.180 に答える