我已經搜索堆棧溢出和網絡,我發現了類似的問題,但沒有給我一個具體的答案。我有一個字符串,充當一個列表,其格式如下: Key(Value)/ Key(value)/ Key(value,value))。如果密鑰存在,我希望通過密鑰名匹配它們,所以我不想在任何地方包括括號......只是密鑰和值。我編寫出來的東西,但它是一個真正的混亂......正則表達式:列表中的捕獲組像字符串
所以我的條件是: 1)提取鍵值對沒有括號 2)提取它們是否可用... 3)如果列表中值部分包含由「」提取單獨
textToParse = "TdkRoot(0x0)/Tdk(0x2,0x0)/Tdk(0x0,0x1)/VAL(40A8F0B32240,2x4)/SN(0000:0000:0000:0000:0000:0000:0000:0000/IP(000.1.000.1)/Blue(2x4,2x4)"
String patternText = "^TdkRoot\(([A-Za-z0-9]) Tdk\((\\w}+) VAL\((\\w) SN\((\\w) IP\ ((\\w) Blue\((\\w)"
Pattern pattern = Pattern.compile(patternText);
Matcher matcher = pattern.matcher(textToParse);
//Extract the groups from the regex (e.g. elements in braces)
String messageId = matcher.group(1);
String submitDate = matcher.group(4);
String statusText = matcher.group(6);
我認爲一個更清潔/更簡單的方法是提取使用模式爲每個鍵/值的元素分隔兩個值。如果是這樣,我可以用什麼模式來告訴正則表達式:對於「key」來說,抓住「值」但留下圓括號......如果值由彗星分隔..返回數組??可能?
感謝社區!希望能從你那聽到答覆!
PS我知道(?<=\()(.*?)(?=\))
會捕獲括號中的任何內容「(此值)被捕獲),但是我怎樣才能修改它以在括號之前指定一個鍵?」我想捕獲這個(圓括號)中的內容「。 ..鍵此 可能由昏迷
提供樣品的輸入和輸出.. – TheLostMind
輸入是textToParse場以上,我使用來測試輸出,沒有得到匹配... – Joe
有是答案..檢查他們是否工作.. – TheLostMind