私はセットの文字列表現をとり、それを解析したいと思います。誰も既存のライブラリを知っていますか?設定されたパーサーは.netに存在しますか?
これらのパターンに一致する正規表現を書くことはできますが、非常に効率的な方法ではないようです。また、いくつかのエッジケースでは、特定の文字列を渡すことはできませんが、私はおそらくいくつかの他のケースがありません。
例えば、私は次のような文字列を解析したいと思います:
"{10,-20,30.5,-40.01,.5,-.5}"
//^\{((-?[0-9]*(\.[0-9]+)?)(?:,|\}))+$
.Parse()
.ShouldEqual(new [] { 10,-20,30.5,-40.01,.5,-.5 });
"{(10,10),(20,2),(30.2,-5.5),(-5,40),(-.2,3000),(-.1,-.2)}"
//^\{(\((-?[0-9]*(\.[0-9]+)?),(-?[0-9]*(\.[0-9]+)?)\)(?:,|}))+$
.Parse()
.ShouldEqual(new [] {
new Point(10,10),
new Point(20,2),
new Point(30.2,-5.5),
new Point(-5,40),
new Point(-.2,3000),
new Point(-.1,-.2)
});
"{(10,[10,1]),(20,[2,4]),(30.2,[-5.5,-10]),(-5,[40,10]),(-.2,[3000,10]),(-.1,[-.2,0])}"
//^\{(\((-?[0-9]*(\.[0-9]+)?),\[((-?[0-9]*(\.[0-9]+)?)(?:,|\]))+\)(?:,|}))+$
.Parse()
.ShouldEqual(new [] {
new Point(10,new[]{ 10,1 }),
new Point(20,new[]{2,4}),
new Point(30.2,new[]{-5.5,-10}),
new Point(-5,new[]{40,10}),
new Point(-.2,new[]{3000,10}),
new Point(-.1,new[]{-.2,0})
});
Pointクラスは任意です。
JSONライブラリで試してみることもできます。 JSONはあなたがここにあるものとまったく同じではありませんが、いくつかの適応はあなたを近づけることができます。 – steamer25