key = value的正则表达式是什么,用逗号分隔?

时间:2012-06-19 01:28:58

标签: java regex

什么是捕获整个键值列表的Java正则表达式(在下面的示例中以粗体显示)?

  

foo bar k0 = v0,k1 = v1,k2 = v2 foo bar

键和值不包含空格字符,=

我在Regular Expression Test Page for Java尝试了(([^\s,=]+=[^\s,=]+),?)+,但它为我提供了各个等级(k0=v0等)的组,而不是整个字符串。这是为什么?以及如何修复它?

2 个答案:

答案 0 :(得分:1)

您的正则表达式不允许使用空格。如果你想让它也包含空格,你就无法摆脱它周围的"foo bar"(它会假设它是一个键或值的一部分)。如果您只想在逗号后面留空格,请尝试:

(([^\s,=]+=[^\s,=]+)(?:,\s*)?)+

答案 1 :(得分:0)

以下内容可行:

([^=|^,|^\W]+)=([^,|^\W]+)