2016-05-17 23 views
0

我該如何創建一個正則表達式來解析這個字符串?我想要得到鍵和值的組。請注意「問題字段」中有引號。這些組應該得到密鑰,然後在下一個密鑰名稱之前找到最後一個逗號。如何創建一個正則表達式來解析這個字符串

這是一個示例字符串。其他字符串可以具有不同的字段名稱,因此正則表達式不應匹配特定的字段名稱,如senderaction

預期的結果分組:

1. "desc" 
2. "random text string" 
3. "sender" 
4. "James" 
5. "se-status" 
6. "red" 
7. "problem-field" 
8. "I'm a problem field, I'm a problem field" 
9: "action" 
10."runs" 
11."target" 
12."John" 
13."ta-status" 
14."blue" 
15."status-apply" 
16."red" 
17."lore" 
18."lore ipsum dolor sit amet" 

請注意問題領域應該是1分的結果,當我試圖提高自己的答案,這太問題在這裏只

這個問題開始:JS: deserializing a string with a JSON-like structure

我已經做了一個典型的for,但用戶Redu創建了一個基於正則表達式的答案。但我不喜歡,因爲字段名稱必須修復。所以我嘗試創建一個正則表達式來捕獲返回檢查最後一個逗號的組,但我很快發現我的正則表達式技能還沒有到那麼遠。所以我想創建這個問題,所以我們可以學習正則表達式的大師。

+0

這是挑戰每一個分開的鍵/值。關鍵在於最後一個逗號和: –

+0

行動之前的雙重空間是有意的嗎? –

+0

否...已編輯。但空間並不重要。 –

回答

1

此正則表達式可以幫助你:

([\w-]+): ([\w,\s']+)(?:,|$) 

Demo

它捕捉了:

+1

希望你的問題領域不包含':' – Nick

相關問題