看板 RegExp 關於我們 聯絡資訊
我想要設定一個動態的格式(字串),使用者再傳入參數時,能夠動態增加.. 因此,我定義傳入的格式如下: [Customer=AAA][Phone=09123456789] or [Customer=AAA][Phone=09123456789][Name=Jonh] or [Customer=AAA][Phone=09123456789][Name=Jonh][Sex=Boy] 我希望Parse後,塞入C#的Dictionary,因此定義成[Key1=Value1][Key2=Value2][][].. 目前我可以Parse且塞入Dictionary。 Regex \[(?<Key>.+?)=(?<Value>.*?)\] 但是,遇到一個問題.. 如果傳入的Value有[],則會Fail.. [Customer=AAA][Phone=09123456789][ProgramName=AAA[1.0.2.5]][Name=John] 請問有有甚麼方式可以解決呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.74.165 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1493128916.A.011.html
LPH66: 你可能要考慮改一下傳入格式, 不然除非你保證所有 Value 04/25 22:17
LPH66: 都會 [] 成對那還有辦法, 否則無解 04/25 22:18
LPH66: 改傳入格式有兩個方向: 一是分隔符號換成保證不在 Value 04/25 22:18
LPH66: 裡出現的字, 另一是定義跳脫字串給 Value 使用 04/25 22:19
mars90226: 覺得這不是用 regex 可以處理的工作 04/26 11:04
mars90226: regex 遇到 recursive 的東西都很難處理 04/26 11:04
No: /\[(.+?)=(.*?)\](?=\[|$)/g 04/29 18:37