name:value要素を含むテキストファイルを「name:value」を含むリストに解析しようとしています...ここにひねりがあります:値は複数の単語または複数の行になることがあり、区切り文字は固定セットではありません言葉の。これが私が取り組んでいるものの例です...
listing="price:44.55 name:John Doe title:Super Widget description:This widget slices, dices, and drives your kids to soccer practice\r\nIt even comes with Super Widget Mini!
私が返したいのは...
["price:44.55", "name:John Doe", "title:Super Widget", "description:This widget slices, dices, and drives your kids to soccer practice\r\nIt even comes with Super Widget Mini!"]
これが私がこれまでに試したことです...
details = re.findall(r'[\w]+:.*', post, re.DOTALL)
["price:", "44.55 name:John Doe title:Super Widget description:This widget slices, dices, and drives your kids to soccer practice\r\nIt even comes with Super Widget Mini!"]
私が欲しいものではありません。または...
details = re.findall(r'[\w]+:.*?', post, re.DOTALL)
["price:", "name:", "title:", "description:"]
私が欲しいものではありません。または...
details = re.split(r'([\w]+:)', post)
["", "price:", "44.55", "name:", "John Doe", "title:", "Super Widget", "description:", "This widget slices, dices, and drives your kids to soccer practice\r\nIt even comes with Super Widget Mini!"]
これは近いですが、それでもサイコロはありません。また、空のリストアイテムを処理することもできます。したがって、基本的に、私の質問は、re.split()の値で区切り文字を保持する方法、またはre.findall()が貪欲すぎたりけちすぎたりしないようにする方法です。
読んでくれてありがとう!