第一次在这里发布。按正则表达式分割,并添加匹配词典
我想1)分析了以下文字:"keyword: some keywords concept :some concepts"
和2)储存到字典:['keyword']=>'some keywords', ['concept']=>'some concepts'
。
在每个“冒号”之前可能有0或1个'空间'。以下是我到目前为止所尝试的。
sample_text = "keyword: some keywords concept :some concepts"
p_res = re.compile("(\S+\s?):").split(sample_text) # Task 1
d_inc = dict([(k, v) for k,v in zip (p_res[::2], p_res[1::2])]) # Task 2
但是,列表结果p_res
是错误的,与指数0,从而产生错误的字典在空项。我的正则表达式有什么问题吗?
如果它为空,则应该跳过第一个项目。如果在字符串的开始处找到匹配项,则正则表达式分割操作将始终在列表中的初始位置处生成一个空项目。你可以在代码中加上'如果不是p_res [0]: \t p_res = p_res [1:]'。 –
或者您可以使用['if not p_res [0]: \t p_res.pop(0)'](https://ideone.com/b7A1aA) –