私は今、この正規表現であまりにも長い間戦っています。分割では区切り文字として空白を使用する必要がありますが、次のトークンまで空白シーケンスで残りのものを維持する必要があります
'123 45 678 123.0'
=>
'123', '45', ' 678', ' 123.0'
私の番号もフロートであり、グループ数は不明です。
私は今、この正規表現であまりにも長い間戦っています。分割では区切り文字として空白を使用する必要がありますが、次のトークンまで空白シーケンスで残りのものを維持する必要があります
'123 45 678 123.0'
=>
'123', '45', ' 678', ' 123.0'
私の番号もフロートであり、グループ数は不明です。
後読みアサーションの使用についてはどうですか?:
>>> import re
>>> regex = re.compile(r'(?<=[^\s])\s')
>>> regex.split('this is a string')
['this', ' is', 'a', ' string']
正規表現の内訳:
(?<=...) #lookbehind. Only match if the `...` matches before hand
[^\s] #Anything that isn't whitespace
\s #single whitespace character
英語では、これは「空白文字が前にない場合、単一の空白文字に一致する」と解釈されます。
または、否定の後読みアサーションを使用できます。
regex = re.compile(r'(?<!\s)\s')
(コメントで示唆されているように)少し良いかもしれませんし、上記と非常に似ているため、どのように機能するかを比較的簡単に理解できるはずです。