我不是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