1. ホーム
  2. python

[解決済み] Pythonで複数のデリミタを持つ文字列を分割する【重複】について

2022-03-15 13:04:36

質問

ネットでいくつか答えを見つけたのですが、ここで必要だと思われる正規表現を使った経験がないのです。

ある文字列を';'か','のどちらかで分割する必要があります。 つまり、セミコロンかカンマの後にスペースを入れる必要があります。末尾にスペースを含まない個々のカンマは、そのままにしておくこと

文字列の例

"b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3], mesitylene [000108-67-8]; polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]"

は、以下を含むリストに分割する必要があります。

('b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3]' , 'mesitylene [000108-67-8]', 'polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]') 

解決方法は?

幸いなことに、Pythonにはこの機能が組み込まれています :)

import re
re.split('; |, ',str)

更新しました。
コメントをいただいてから

>>> a='Beautiful, is; better*than\nugly'
>>> import re
>>> re.split('; |, |\*|\n',a)
['Beautiful', 'is', 'better', 'than', 'ugly']