2013-11-27 139 views
0

,我有以下行我可是从一个文件拆分分隔符不同

# subject, catagory, note 
literature,general education,,note: see approved list 
social-cultural elective,general education,,note: see approved 

阅读中,我想拆这些后来添加到字典中。所以我想分割逗号,双逗号和“:”字符。我将如何能够做到这一点,以便为

{'Literature' : [['general education'],[ 'see approved list']] 'social-cultural elective' : [['general education'],[see approved]]} 

使用IM RE分裂,有“W +”的表达,但没有工作监守各线均有不同空格等字符,如最终结果出现“ - ”,帮助

+0

你确实需要准确描述你想要的东西。在你的例子中,我看到你也将“社会文化”中的“ - ”改为空白,并删除了“注释”两次。准确地说*你想要什么 - 不要留下任何东西。否则人们猜测,你说“不”等等等等 - 它变得非常单调乏味;-) –

+0

是啊,我意外地忽略了短跑。和笔记不必删除,我只是假设,如果你分裂在“:”之前的一切都丢失,所以只有在该字符之后的文字很重要 –

+0

“如果你拆分为”:“以前的所有内容都丢失了,所以只有文本在那之后角色很重要“ - >为什么在逗号之前的文字(即文学,普通教育等)也被删除了呢? – justhalf

回答

1

试试这个:

import re 
splitter = re.compile(r":|,,?") 
for line in ("literature,general education,,note: see approved list", 
      "social-cultural elective,general education,,note: see approved"): 
    print splitter.split(line) 

,打印:

['literature', 'general education', 'note', ' see approved list'] 
['social-cultural elective', 'general education', 'note', ' see approved'] 

如果这不是你想要什么,编辑你的问题,因为这是你问究竟什么;-)(即“所以我想分开逗号,双逗号和”:“字符”)。

+0

这就是我正在寻找的。 –

+0

呜呼!有时候我们很幸运;-) –

1

使用Python内置split功能:

>>> a_str='social-cultural elective,general education,,note: see approved ' 
>>> import re 
>>> re.split(': |, |\*|\n', a_str) 

PS:对于双逗号,你可以做str.replace第一

+0

因为你必须导入're.split()'内建的吗? – joshreesjones

+0

是啊,我不明白它将如何用双逗号完成 –

+1

@ mathguy54,是的 - Python带有大量模块集合,它们都被认为是“内置的”。为什么?因为每个Python都附带它们;-) –