ネガティブな先読みを使用することもできます...超強力なPython正規表現メカニズムで忘れられている大きなもの...
数字が前に付いていない、または数字が後に付いていないコンマで分割する正規表現を作成できます。
#!/usr/bin/env python
import re
samples=[
"Foo Bar, FooTown, $100,00",
"$100,00, Foo Bar, FooTown",
"Foo Bar, $100,00, FooTown",
"$100,00, Foo Bar, FooTown,",
]
myRegex=re.compile(",(?!\d)|(?<!\d),")
for sample in samples:
print "%s sample splitted: %s (%s items)" % (sample, myRegex.split(sample), len(myRegex.split(sample)))
出力:
Foo Bar, FooTown, $100,00 sample splitted: ['Foo Bar', ' FooTown', ' $100,00'] (3 items)
$100,00, Foo Bar, FooTown sample splitted: ['$100,00', ' Foo Bar', ' FooTown'] (3 items)
Foo Bar, $100,00, FooTown sample splitted: ['Foo Bar', ' $100,00', ' FooTown'] (3 items)
$100,00, Foo Bar, FooTown, sample splitted: ['$100,00', ' Foo Bar', ' FooTown', ''] (4 items)
Pythonでreモジュールを開発してくれた人たちにはとても申し訳ありません...この種の先読みがほとんど使用されていないのを見たことがあります。