我需要一个正则表达式来分割键值对。键和值用=分隔 值可以包含逗号(,),但如果它们包含逗号(,),则需要用("")括起来。("")中的值也可以包含多个内部("")中包含逗号(,)。可以使用(",")进行多层嵌套。
除了(comman(,)等于(=)双引号("")
之外的任何键都可以示例 - abc ="我的名字是" ayush,nigam"",def ="我住在" bangalore",ghi =班加罗尔在卡纳塔克邦,jkl ="我来自UP"
另一个例子 - " ayush =" piyush =" abc,def",bce =" asb,dsa"",aman = nigam&# 34;
我希望输出为ayush =" piyush =" abc,def",bce =" asb,dsa""和aman = nigam
我在java中使用以下正则表达式代码。
Pattern abc=Pattern.compile("([^=,]*)=((?:\"[^\"]*\"|[^,\"])*)");
String text2="AssemblyName=(foo.dll),ClassName=\"SomeClassanotherClass=\"a,b\"\"";
Matcher m=abc.matcher(text2);
while(m.find()) {
String kvPair = m.group();
System.out.println(kvPair);
}
我正在接受kvPair :
的AssemblyName =(foo.dll)
的ClassName =" SomeClassanotherClass ="
我需要得到的地方,
的AssemblyName =(foo.dll)
的ClassName =" SomeClassanotherClass =" A,B"
因此内部双引号("")中的逗号(,)无法正确解析。请帮助。