什么是捕获整个键值列表的Java正则表达式(在下面的示例中以粗体显示)?
foo bar k0 = v0,k1 = v1,k2 = v2 foo bar
键和值不包含空格字符,
或=
。
我在Regular Expression Test Page for Java尝试了(([^\s,=]+=[^\s,=]+),?)+
,但它为我提供了各个等级(k0=v0
等)的组,而不是整个字符串。这是为什么?以及如何修复它?
答案 0 :(得分:1)
您的正则表达式不允许使用空格。如果你想让它也包含空格,你就无法摆脱它周围的"foo bar"
(它会假设它是一个键或值的一部分)。如果您只想在逗号后面留空格,请尝试:
(([^\s,=]+=[^\s,=]+)(?:,\s*)?)+
答案 1 :(得分:0)
以下内容可行:
([^=|^,|^\W]+)=([^,|^\W]+)