Python で文字列を分割し、区切り文字を維持するにはどうすればよいでしょうか? 質問する

Python で文字列を分割し、区切り文字を維持するにはどうすればよいでしょうか? 質問する

これを説明する最も簡単な方法は次のとおりです。私が使用しているものは次のとおりです。

re.split('\W', 'foo/bar spam\neggs')
>>> ['foo', 'bar', 'spam', 'eggs']

私が欲しいものは次のとおりです:

someMethod('\W', 'foo/bar spam\neggs')
>>> ['foo', '/', 'bar', ' ', 'spam', '\n', 'eggs']

その理由は、文字列をトークンに分割し、それを操作してから、再び組み立てたいからです。

ベストアンサー1

ドキュメントre.split言及:

パターンの出現箇所で文字列を分割します。パターンでキャプチャ括弧が使用されている場合、パターン内のすべてのグループのテキストも結果のリストの一部として返されます

したがって、セパレーターをキャプチャ グループで囲む必要があります。

>>> re.split('(\W)', 'foo/bar spam\neggs')
['foo', '/', 'bar', ' ', 'spam', '\n', 'eggs']

おすすめ記事