string を考えてみましょうs = "aa,bb11,22 , 33 , 44,cc , dd "
。
Pythonの正規表現モジュールをs
使用して、次のトークンのリストに分割したいと思います。これは、Perl が提供する機能に似ています。
"aa,bb11"
"22"
"33"
"44,cc , dd "
ノート:
- コンマでトークン化したいのですが、それらのコンマの両側に数字がある場合に限ります。
- 私が対象としているこれらの「数字のカンマ」の周りの(オプションの)空白は、結果から削除する必要があります。オプションの空白は、複数のスペースにすることができます。
- その他の空白は、元の文字列に表示されているとおりに残す必要があります。
これまでの私の最善の試みは次のとおりです。
import re
pattern = r'(?<=\d)(\s*),(\s*)(?=\d)'
s = 'aa,bb11,22 , 33 , 44,cc , dd '
print re.compile(pattern).split(s)
しかし、これは次のように出力します:
['aa,bb11', '', '', '22', ' ', ' ', '33', ' ', ' ', '44,cc , dd ']
私が欲しいものが4つリストに含まれているので、これは私が欲しいものに近い. 空の文字列とスペース/コンマのみで構成される文字列をすべて削除することもできますが、これらすべてを実行する単一行の正規表現が必要です。
何か案は?