我正在尝试从具有以下形式的字符串中捕获键值对:
a0=d235 a1=2314 com1="abcd" com2="a b c d"
使用这篇文章的帮助,我能够编写以下捕获键值对的正则表达式:
Pattern.compile("(\\w*)=(\"[^\"]*\"|[^\\s]*)");
问题是该模式中的第二组也捕获了引号,如下所示:
a0=d235
a1=2314
com1="abcd"
com2="a b c d"
如何排除引号?我想要这样的东西:
a0=d235
a1=2314
com1=abcd
com2=a b c d
编辑:
根据是否有引号,可以通过捕获不同组中的值来实现上述目的。我正在为解析器编写此代码,因此出于性能原因,我试图提出一个可以返回同一组号中的值的正则表达式。