[英]Extracting `<key>:<value>` pairs with regex
您可以使用
const text = 'is:"browser" browser: "chrome 11.11 V" node: error type:"Error"'; const re = /(\w+):\s*(?:"([^"]*)"|(\S+))/g; let dict = {}, m; while(m = re.exec(text)) { dict[m[1]]=(m[3] || m[2]); } console.log(dict); // Or just get all matches: console.log(text.match(re))
請參閱正則表達式演示。 詳情:
(\w+)
- 第 1 組:一個或多個單詞字符:
- 一個冒號\s*
- 零個或多個空格(?:"([^"]*)"|(\S+))
- 任何一個
"([^"]*)"
- "
, 0+ 個非逗號(在第 2 組中捕獲), "
|
- 或者(\S+)
- 第 3 組:一個或多個非空白字符。正則表達式:
/([a-zA-Z!]+:\s*[" ]?([a-z0-9\s.]+)[" $])/gi
文本:
sdfd:"dsffs" dsfd: "dsf demo" sfd: dsf fdsff:"fdsfsdf"
列表:
sdfd:"dsffs"
dsfd: "dsf demo"
sfd: dsf
fdsff:"fdsfsdf"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.