第一次在這裏發佈。按正則表達式分割,並添加匹配詞典
我想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) –