如果我正在阅读这个权利,你得到的问题是一个格式不正确的输入字符串,你在键值对的值部分有一个','。
所以你希望你的输入
abc: def,xyz: pqr, uvw: abchash<class qwerty,struct Hash<class qwerty>,struct std::equal_to<class qwerty> >::resize
解析到
abc: def
xyz: pqr
uvw: abchash<class qwerty,struct Hash<class qwerty>,struct std::equal_to<class qwerty> >::resize
但是,相反它的解析来
abc: def
xyz: pqr
uvw: abchash<class qwerty
struct Hash<class qwerty>
struct std::equal_to<class qwerty> >::resize
对此的解决方案是修复您的输入值引用整个值字符串或使用其他分隔符给你一些规则。
据我可以告诉你基本上没有关于你进入的规则。它可以是一个关键:值对或只是一个值,就像你在另一个问题中的例子。在这种情况下,不可能区分包含逗号的值与一个值的结尾和另一个值的开始之间的差异。你说这该字符串
abc:xyz uvw, def:ghi, mno:rst, ijk:efg, abc opq
应解析成
abc:xyz uvw
def:ghi
mno:rst
ijk:efg
abc opq <-- no key, just a value
这意味着该
abc: def,xyz: pqr, uvw: abchash<class qwerty,struct Hash<class qwerty>,struct std::equal_to<class qwerty> >::resize
可以解析到
abc: def
xyz: pqr
uvw: abchash<class qwerty,struct Hash<class qwerty>,struct std::equal_to<class qwerty> >::resize
或同样
abc: def
xyz: pqr
uvw: abchash<class qwerty
struct Hash<class qwerty>,struct std::equal_to<class qwerty> >::resize
或同样
abc: def
xyz: pqr
uvw: abchash<class qwerty
struct Hash<class qwerty>
struct std::equal_to<class qwerty> >::resize
等等等等
当你有你需要输入改变以某种方式让你缩小正确的正则表达式用多个同样有效的答案。
你的问题是有点混乱。你说你不想拆分uvw:abchash,struct std :: equal_to > resize part? –
JFPicard
@JFPicard - 这是正确的。由于uvw的值是整行,直到调整大小,我需要它作为值,而不是直到第一个“,”。 – Vidya
我的回答对你的问题有帮助吗?如果是,请标记为已解决。 –