我不是regexp的專家,這就是爲什麼我要求您建議在key = value組中分割此字符串的有效方法。使用正則表達式分割鍵=值組中的字符串(Java)
輸入字符串:
x-x="11111" y-y="John-Doe 23" db {rty='Y453'} code {codeDate='2000-03-01T00:00:00'}
什麼,我需要的是讓key = value對:
key=x-x, value="11111"
key=y-y, value="John-Doe 23"
key=rty, value='Y453'
key=codeDate, value='2000-03-01T00:00:00'
我的解決辦法是在這裏,但我擔心這不是最簡單的一種。
String str = "x-x=\"11111\" y-y=\"John-Doe 23\" db {rty='Y453'} code {codeDate='2000-03-01T00:00:00'}";
Matcher m = Pattern.compile("(\\w+-*\\w*)=((\"|')(\\w+(|-|:)*)+(\"|'))").matcher(str);
while(m.find()) {
String key = m.group(1);
String value = m.group(2);
System.out.printf("key=%s, value=%s\n", key, value);
}
在此先感謝您的幫助。
單引號和雙引號之間的值選擇值千萬鍵總是由字母/數字,'_'和'-'字符? –
鍵具有固定名稱:'x-x','y-y','rty'和'codeDate'。但在價值可以是任何東西.. – ayscha